Did anyone realise why this commit is a forced update? I'm not opposing anything, just wondering what did lead to a forced update, which did get marked as such.
Regards, Achim sent from mobile device Am 18.02.2016 5:07 nachm. schrieb <[email protected]>: > Repository: karaf-decanter > Updated Branches: > refs/heads/DS-target 8c3e004aa -> 629395e78 (forced update) > > > KARAF-3773 - Add redis appender > > Thanks to mhautman for initial code > > > Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo > Commit: > http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/ae8d3973 > Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/ae8d3973 > Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/ae8d3973 > > Branch: refs/heads/DS-target > Commit: ae8d3973b1583b97d4bf74d5431b250246ab84d1 > Parents: aa0685b > Author: Jean-Baptiste Onofré <[email protected]> > Authored: Thu Feb 18 15:30:01 2016 +0100 > Committer: Jean-Baptiste Onofré <[email protected]> > Committed: Thu Feb 18 15:30:01 2016 +0100 > > ---------------------------------------------------------------------- > appender/pom.xml | 1 + > appender/redis/LICENSE | 475 +++++++++++++++++++ > appender/redis/NOTICE | 32 ++ > appender/redis/pom.xml | 83 ++++ > ...org.apache.karaf.decanter.appender.redis.cfg | 42 ++ > .../decanter/appender/redis/RedisAppender.java | 98 ++++ > assembly/src/main/feature/feature.xml | 6 + > pom.xml | 1 + > 8 files changed, 738 insertions(+) > ---------------------------------------------------------------------- > > > > http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/ae8d3973/appender/pom.xml > ---------------------------------------------------------------------- > diff --git a/appender/pom.xml b/appender/pom.xml > index 65fe7b8..5d25b48 100644 > --- a/appender/pom.xml > +++ b/appender/pom.xml > @@ -44,6 +44,7 @@ > <module>kafka</module> > <module>mqtt</module> > <module>cassandra</module> > + <module>redis</module> > </modules> > > </project> > \ No newline at end of file > > > http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/ae8d3973/appender/redis/LICENSE > ---------------------------------------------------------------------- > diff --git a/appender/redis/LICENSE b/appender/redis/LICENSE > new file mode 100644 > index 0000000..b36a53d > --- /dev/null > +++ b/appender/redis/LICENSE > @@ -0,0 +1,475 @@ > + > + 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. > + > +For asm: > +Copyright (c) 2000-2011 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. > + > +For equinox: > +Eclipse Public License - v 1.0 > + > +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE > PUBLIC LICENSE ("AGREEMENT"). > +ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES > RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. > + > +1. DEFINITIONS > + > +"Contribution" means: > + > +a) in the case of the initial Contributor, the initial code and > documentation distributed under this Agreement, and > + > +b) in the case of each subsequent Contributor: > + > +i) changes to the Program, and > + > +ii) additions to the Program; > + > +where such changes and/or additions to the Program originate from and are > distributed by that particular Contributor. > +A Contribution 'originates' from a Contributor if it was added to the > Program by such Contributor itself or anyone > +acting on such Contributor's behalf. Contributions do not include > additions to the Program which: (i) are separate > +modules of software distributed in conjunction with the Program under > their own license agreement, and (ii) are not > +derivative works of the Program. > + > +"Contributor" means any person or entity that distributes the Program. > + > +"Licensed Patents" mean patent claims licensable by a Contributor which > are necessarily infringed by the use or sale > +of its Contribution alone or when combined with the Program. > + > +"Program" means the Contributions distributed in accordance with this > Agreement. > + > +"Recipient" means anyone who receives the Program under this Agreement, > including all Contributors. > + > +2. GRANT OF RIGHTS > + > +a) Subject to the terms of this Agreement, each Contributor hereby grants > Recipient a non-exclusive, worldwide, > +royalty-free copyright license to reproduce, prepare derivative works of, > publicly display, publicly perform, > +distribute and sublicense the Contribution of such Contributor, if any, > and such derivative works, in source code > +and object code form. > + > +b) Subject to the terms of this Agreement, each Contributor hereby grants > Recipient a non-exclusive, worldwide, > +royalty-free patent license under Licensed Patents to make, use, sell, > offer to sell, import and otherwise transfer > +the Contribution of such Contributor, if any, in source code and object > code form. This patent license shall apply to > +the combination of the Contribution and the Program if, at the time the > Contribution is added by the Contributor, such > +addition of the Contribution causes such combination to be covered by the > Licensed Patents. The patent license shall > +not apply to any other combinations which include the Contribution. No > hardware per se is licensed hereunder. > + > +c) Recipient understands that although each Contributor grants the > licenses to its Contributions set forth herein, no > +assurances are provided by any Contributor that the Program does not > infringe the patent or other intellectual property > +rights of any other entity. Each Contributor disclaims any liability to > Recipient for claims brought by any other entity > +based on infringement of intellectual property rights or otherwise. As a > condition to exercising the rights and licenses > +granted hereunder, each Recipient hereby assumes sole responsibility to > secure any other intellectual property rights > +needed, if any. For example, if a third party patent license is required > to allow Recipient to distribute the Program, > +it is Recipient's responsibility to acquire that license before > distributing the Program. > + > +d) Each Contributor represents that to its knowledge it has sufficient > copyright rights in its Contribution, if any, > +to grant the copyright license set forth in this Agreement. > + > +3. REQUIREMENTS > + > +A Contributor may choose to distribute the Program in object code form > under its own license agreement, provided that: > + > +a) it complies with the terms and conditions of this Agreement; and > + > +b) its license agreement: > + > +i) effectively disclaims on behalf of all Contributors all warranties and > conditions, express and implied, including > +warranties or conditions of title and non-infringement, and implied > warranties or conditions of merchantability and > +fitness for a particular purpose; > + > +ii) effectively excludes on behalf of all Contributors all liability for > damages, including direct, indirect, special, > +incidental and consequential damages, such as lost profits; > + > +iii) states that any provisions which differ from this Agreement are > offered by that Contributor alone and not by any > +other party; and > + > +iv) states that source code for the Program is available from such > Contributor, and informs licensees how to obtain > +it in a reasonable manner on or through a medium customarily used for > software exchange. > + > +When the Program is made available in source code form: > + > +a) it must be made available under this Agreement; and > + > +b) a copy of this Agreement must be included with each copy of the > Program. > + > +Contributors may not remove or alter any copyright notices contained > within the Program. > + > +Each Contributor must identify itself as the originator of its > Contribution, if any, in a manner that reasonably > +allows subsequent Recipients to identify the originator of the > Contribution. > + > +4. COMMERCIAL DISTRIBUTION > + > +Commercial distributors of software may accept certain responsibilities > with respect to end users, business partners > +and the like. While this license is intended to facilitate the commercial > use of the Program, the Contributor who > +includes the Program in a commercial product offering should do so in a > manner which does not create potential > +liability for other Contributors. Therefore, if a Contributor includes > the Program in a commercial product offering, > +such Contributor ("Commercial Contributor") hereby agrees to defend and > indemnify every other Contributor > +("Indemnified Contributor") against any losses, damages and costs > (collectively "Losses") arising from claims, > +lawsuits and other legal actions brought by a third party against the > Indemnified Contributor to the extent caused > +by the acts or omissions of such Commercial Contributor in connection > with its distribution of the Program in a > +commercial product offering. The obligations in this section do not apply > to any claims or Losses relating to any > +actual or alleged intellectual property infringement. In order to > qualify, an Indemnified Contributor must: a) promptly > +notify the Commercial Contributor in writing of such claim, and b) allow > the Commercial Contributor to control, and > +cooperate with the Commercial Contributor in, the defense and any related > settlement negotiations. The > +Indemnified Contributor may participate in any such claim at its own > expense. > + > +For example, a Contributor might include the Program in a commercial > product offering, Product X. That Contributor is > +then a Commercial Contributor. If that Commercial Contributor then makes > performance claims, or offers warranties > +related to Product X, those performance claims and warranties are such > Commercial Contributor's responsibility alone. > +Under this section, the Commercial Contributor would have to defend > claims against the other Contributors related to > +those performance claims and warranties, and if a court requires any > other Contributor to pay any damages as a result, > +the Commercial Contributor must pay those damages. > + > +5. NO WARRANTY > + > +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED > 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. > Each Recipient is solely responsible for > +determining the appropriateness of using and distributing the Program and > assumes all risks associated with its > +exercise of rights under this Agreement , including but not limited to > the risks and costs of program errors, > +compliance with applicable laws, damage to or loss of data, programs or > equipment, and unavailability or interruption > +of operations. > + > +6. DISCLAIMER OF LIABILITY > + > +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR > ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR > +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL > DAMAGES (INCLUDING WITHOUT LIMITATION LOST > +PROFITS), 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 OR > DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS > +GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. > + > +7. GENERAL > + > +If any provision of this Agreement is invalid or unenforceable under > applicable law, it shall not affect the validity > +or enforceability of the remainder of the terms of this Agreement, and > without further action by the parties hereto, > +such provision shall be reformed to the minimum extent necessary to make > such provision valid and enforceable. > + > +If Recipient institutes patent litigation against any entity (including a > cross-claim or counterclaim in a lawsuit) > +alleging that the Program itself (excluding combinations of the Program > with other software or hardware) infringes > +such Recipient's patent(s), then such Recipient's rights granted under > Section 2(b) shall terminate as of the date > +such litigation is filed. > + > +All Recipient's rights under this Agreement shall terminate if it fails > to comply with any of the material terms or > +conditions of this Agreement and does not cure such failure in a > reasonable period of time after becoming aware of > +such noncompliance. If all Recipient's rights under this Agreement > terminate, Recipient agrees to cease use and > +distribution of the Program as soon as reasonably practicable. However, > Recipient's obligations under this Agreement > +and any licenses granted by Recipient relating to the Program shall > continue and survive. > + > +Everyone is permitted to copy and distribute copies of this Agreement, > but in order to avoid inconsistency the > +Agreement is copyrighted and may only be modified in the following > manner. The Agreement Steward reserves the right > +to publish new versions (including revisions) of this Agreement from time > to time. No one other than the Agreement > +Steward has the right to modify this Agreement. The Eclipse Foundation is > the initial Agreement Steward. The Eclipse > +Foundation may assign the responsibility to serve as the Agreement > Steward to a suitable separate entity. Each new > +version of the Agreement will be given a distinguishing version number. > The Program (including Contributions) may > +always be distributed subject to the version of the Agreement under which > it was received. In addition, after a new > +version of the Agreement is published, Contributor may elect to > distribute the Program (including its Contributions) > +under the new version. Except as expressly stated in Sections 2(a) and > 2(b) above, Recipient receives no rights or > +licenses to the intellectual property of any Contributor under this > Agreement, whether expressly, by implication, > +estoppel or otherwise. All rights in the Program not expressly granted > under this Agreement are reserved. > + > +This Agreement is governed by the laws of the State of New York and the > intellectual property laws of the United States > +of America. No party to this Agreement will bring a legal action under > this Agreement more than one year after the > +cause of action arose. Each party waives its rights to a jury trial in > any resulting litigation. > + > +For Java Service Wrapper: > +Copyright (c) 1999, 2006 Tanuki Software, Inc. > + > +Permission is hereby granted, free of charge, to any person > +obtaining a copy of the Java Service Wrapper and associated > +documentation files (the "Software"), to deal in the Software > +without restriction, including without limitation the rights > +to use, copy, modify, merge, publish, distribute, sub-license, > +and/or sell copies of the Software, and to permit persons to > +whom the Software is furnished to do so, subject to the > +following conditions: > + > +The above copyright notice and this permission notice shall be > +included in all copies or substantial portions of the Software. > + > +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES > +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > +NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, > +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > +OTHER DEALINGS IN THE SOFTWARE. > + > + > +Portions of the Software have been derived from source code > +developed by Silver Egg Technology under the following license: > + > +BEGIN Silver Egg Techology License ----------------------------------- > + > + Copyright (c) 2001 Silver Egg Technology > + > + Permission is hereby granted, free of charge, to any person > + obtaining a copy of this software and associated documentation > + files (the "Software"), to deal in the Software without > + restriction, including without limitation the rights to use, > + copy, modify, merge, publish, distribute, sub-license, and/or > + sell copies of the Software, and to permit persons to whom the > + Software is furnished to do so, subject to the following > + conditions: > + > + The above copyright notice and this permission notice shall be > + included in all copies or substantial portions of the Software. > + > + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES > + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, > + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + OTHER DEALINGS IN THE SOFTWARE. > + > +END Silver Egg Techology License ------------------------------------- > + > +For slf4j > +Copyright (c) 2004-2011 QOS.ch > +All rights reserved. > + > +Permission is hereby granted, free of charge, to any person obtaining > +a copy of this software and associated documentation files (the > +"Software"), to deal in the Software without restriction, including > +without limitation the rights to use, copy, modify, merge, publish, > +distribute, sublicense, and/or sell copies of the Software, and to > +permit persons to whom the Software is furnished to do so, subject to > +the following conditions: > + > +The above copyright notice and this permission notice shall be > +included in all copies or substantial portions of the Software. > + > +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE > +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. > \ No newline at end of file > > > http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/ae8d3973/appender/redis/NOTICE > ---------------------------------------------------------------------- > diff --git a/appender/redis/NOTICE b/appender/redis/NOTICE > new file mode 100644 > index 0000000..3cf0a31 > --- /dev/null > +++ b/appender/redis/NOTICE > @@ -0,0 +1,32 @@ > +Apache Karaf Decanter > +Copyright 2015 The Apache Software Foundation > + > +I. Included Software > + > +This product includes software developed at > +The Apache Software Foundation (http://www.apache.org/). > +Licensed under the Apache License 2.0. > + > +II. Used Software > + > +This product uses software developed at > +The OSGi Alliance (http://www.osgi.org/). > +Copyright (c) OSGi Alliance (2000, 2010). > +Licensed under the Apache License 2.0. > + > +This product uses software developed at > +OPS4J (http://www.ops4j.org/). > +Licensed under the Apache License 2.0. > + > +This product uses software developed at > +SLF4J (http://www.slf4j.org/). > +Licensed under the MIT License. > + > +This product uses software developed at > +JUnit (http://www.junit.org/). > +Licensed under the Eclipse Public License 1.0. > + > +III. License Summary > +- Apache License 2.0 > +- MIT License > +- Eclipse Public License 1.0 > > > http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/ae8d3973/appender/redis/pom.xml > ---------------------------------------------------------------------- > diff --git a/appender/redis/pom.xml b/appender/redis/pom.xml > new file mode 100644 > index 0000000..54a0de4 > --- /dev/null > +++ b/appender/redis/pom.xml > @@ -0,0 +1,83 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" > http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/xsd/maven-4.0.0.xsd"> > + > + <!-- > + > + Licensed to the Apache Software Foundation (ASF) under one or more > + contributor license agreements. See the NOTICE file distributed > with > + this work for additional information regarding copyright > ownership. > + The ASF licenses this file to You under the Apache License, > Version 2.0 > + (the "License"); you may not use this file except in compliance > with > + the License. You may obtain a copy of the License at > + > + http://www.apache.org/licenses/LICENSE-2.0 > + > + Unless required by applicable law or agreed to in writing, > software > + distributed under the License is distributed on an "AS IS" BASIS, > + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > + See the License for the specific language governing permissions > and > + limitations under the License. > + --> > + > + <modelVersion>4.0.0</modelVersion> > + > + <parent> > + <groupId>org.apache.karaf.decanter</groupId> > + <artifactId>appender</artifactId> > + <version>1.1.0-SNAPSHOT</version> > + <relativePath>../pom.xml</relativePath> > + </parent> > + > + <groupId>org.apache.karaf.decanter.appender</groupId> > + <artifactId>org.apache.karaf.decanter.appender.redis</artifactId> > + <packaging>bundle</packaging> > + <name>Apache Karaf :: Decanter :: Appender :: Redis</name> > + > + <dependencies> > + <dependency> > + <groupId>org.redisson</groupId> > + <artifactId>redisson</artifactId> > + <version>${redisson.version}</version> > + </dependency> > + </dependencies> > + > + <build> > + <plugins> > + <plugin> > + <groupId>org.apache.felix</groupId> > + <artifactId>maven-bundle-plugin</artifactId> > + <configuration> > + <instructions> > + <Import-Package> > + com.esotericsoftware.kryo;resolution:=optional > + </Import-Package> > + <Private-Package> > + org.redisson*, > + </Private-Package> > + </instructions> > + </configuration> > + </plugin> > + <plugin> > + <groupId>org.codehaus.mojo</groupId> > + <artifactId>build-helper-maven-plugin</artifactId> > + <executions> > + <execution> > + <phase>package</phase> > + <goals> > + <goal>attach-artifact</goal> > + </goals> > + <configuration> > + <artifacts> > + <artifact> > + > <file>src/main/cfg/org.apache.karaf.decanter.appender.redis.cfg</file> > + <type>cfg</type> > + </artifact> > + </artifacts> > + </configuration> > + </execution> > + </executions> > + </plugin> > + </plugins> > + </build> > + > +</project> > \ No newline at end of file > > > http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/ae8d3973/appender/redis/src/main/cfg/org.apache.karaf.decanter.appender.redis.cfg > ---------------------------------------------------------------------- > diff --git > a/appender/redis/src/main/cfg/org.apache.karaf.decanter.appender.redis.cfg > b/appender/redis/src/main/cfg/org.apache.karaf.decanter.appender.redis.cfg > new file mode 100644 > index 0000000..5873708 > --- /dev/null > +++ > b/appender/redis/src/main/cfg/org.apache.karaf.decanter.appender.redis.cfg > @@ -0,0 +1,42 @@ > +####################################### > +# Decanter Redis Appender Configuration > +####################################### > + > +# > +# Location of the Redis broker > +# It's possible to use a list of brokers, for instance: > +# host= locahost:6389,localhost:6332,localhost:6419 > +# > +# Default is localhost:6379 > +# > +address=localhost:6379 > + > +# > +# Define the connection mode. > +# Possible modes: Single (default), Master_Slave, Sentinel, Cluster > +# > +mode=Single > + > +# > +# Name of the Redis map > +# Default is Decanter > +# > +map=Decanter > + > +# > +# For Master_Slave mode, we define the location of the master > +# Default is localhost:6379 > +# > +#masterAddress=localhost:6379 > + > +# > +# For Sentinel model, define the name of the master > +# Default is myMaster > +# > +#masterName=myMaster > + > +# > +# For Cluster mode, define the scan interval of the nodes in the cluster > +# Default value is 2000 (2 seconds). > +# > +#scanInterval=2000 > \ No newline at end of file > > > http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/ae8d3973/appender/redis/src/main/java/org/apache/karaf/decanter/appender/redis/RedisAppender.java > ---------------------------------------------------------------------- > diff --git > a/appender/redis/src/main/java/org/apache/karaf/decanter/appender/redis/RedisAppender.java > b/appender/redis/src/main/java/org/apache/karaf/decanter/appender/redis/RedisAppender.java > new file mode 100644 > index 0000000..d38ebdb > --- /dev/null > +++ > b/appender/redis/src/main/java/org/apache/karaf/decanter/appender/redis/RedisAppender.java > @@ -0,0 +1,98 @@ > +/* > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.karaf.decanter.appender.redis; > + > +import org.osgi.service.component.ComponentContext; > +import org.osgi.service.component.annotations.Activate; > +import org.osgi.service.component.annotations.Component; > +import org.osgi.service.component.annotations.Deactivate; > +import org.osgi.service.event.Event; > +import org.osgi.service.event.EventConstants; > +import org.osgi.service.event.EventHandler; > +import org.redisson.Config; > +import org.redisson.Redisson; > +import org.redisson.RedissonClient; > +import org.slf4j.Logger; > +import org.slf4j.LoggerFactory; > + > +import java.util.Dictionary; > +import java.util.Map; > + > +/** > + * Redis appender > + */ > +@Component( > + configurationPid = "org.apache.karaf.decanter.appender.redis", > + service = EventHandler.class, > + property = {EventConstants.EVENT_TOPIC + "=decanter/collect/*" } > +) > +public class RedisAppender implements EventHandler { > + > + private final static Logger LOGGER = > LoggerFactory.getLogger(RedisAppender.class); > + > + private String address; > + private String mode; > + private String map; > + private String masterAddress; > + private String masterName; > + private int scanInterval; > + > + private RedissonClient redissonClient; > + > + @Activate > + public void activate(ComponentContext componentContext) { > + Dictionary<String, Object> properties = > componentContext.getProperties(); > + address = getProperty(properties, "address", "localhost:6379"); > + mode = getProperty(properties, "mode", "Single"); > + map = getProperty(properties, "map", "Decanter"); > + masterAddress = getProperty(properties, "masterAddress", null); > + masterName = getProperty(properties, "masterName", null); > + scanInterval = Integer.parseInt(getProperty(properties, > "scanInterval", "2000")); > + > + Config config = new Config(); > + if (mode.equalsIgnoreCase("Single")) { > + config.useSingleServer().setAddress(address); > + } else if (mode.equalsIgnoreCase("Master_Slave")) { > + > config.useMasterSlaveServers().setMasterAddress(masterAddress).addSlaveAddress(address); > + } else if (mode.equalsIgnoreCase("Sentinel")) { > + > config.useSentinelServers().addSentinelAddress(masterName).addSentinelAddress(address); > + } else if (mode.equalsIgnoreCase("Cluster")) { > + > config.useClusterServers().setScanInterval(scanInterval).addNodeAddress(address); > + } > + redissonClient = Redisson.create(config); > + } > + > + @Deactivate > + public void deactivate() { > + if (redissonClient != null && (!redissonClient.isShutdown() || > !redissonClient.isShuttingDown())) { > + redissonClient.shutdown(); > + } > + } > + > + @Override > + public void handleEvent(Event event) { > + Map<String, Object> redisMap = redissonClient.getMap(this.map); > + for (String name : event.getPropertyNames()) { > + redisMap.put(name, event.getProperty(name)); > + } > + } > + > + private String getProperty(Dictionary<String, Object> properties, > String key, String defaultValue) { > + return (properties.get(key) != null) ? (String) > properties.get(key) : defaultValue; > + } > + > +} > > > http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/ae8d3973/assembly/src/main/feature/feature.xml > ---------------------------------------------------------------------- > diff --git a/assembly/src/main/feature/feature.xml > b/assembly/src/main/feature/feature.xml > index 5d61000..55bf1f7 100644 > --- a/assembly/src/main/feature/feature.xml > +++ b/assembly/src/main/feature/feature.xml > @@ -167,6 +167,12 @@ > <configfile > finalname="/etc/org.apache.karaf.decanter.appender.cassandra.cfg">mvn:org.apache.karaf.decanter.appender/org.apache.karaf.decanter.appender.cassandra/${project.version}/cfg</configfile> > </feature> > > + <feature name="decanter-appender-redis" version="${project.version}" > description="Karaf Decanter Redis Appender"> > + <feature version="${project.version}">decanter-common</feature> > + > <bundle>mvn:org.apache.karaf.decanter.appender/org.apache.karaf.decanter.appender.redis/${project.version}</bundle> > + <configfile > finalname="/etc/org.apache.karaf.decanter.appender.redis.cfg">mvn:org.apache.karaf.decanter.appender/org.apache.karaf.decanter.appender.redis/${project.version}/cfg</configfile> > + </feature> > + > <feature name="decanter-sla" version="${project.version}" > description="Karaf Decanter SLA support"> > <feature version="${project.version}">decanter-common</feature> > > > <bundle>mvn:org.apache.karaf.decanter.sla/org.apache.karaf.decanter.sla.checker/${project.version}</bundle> > > http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/ae8d3973/pom.xml > ---------------------------------------------------------------------- > diff --git a/pom.xml b/pom.xml > index 9703e8a..2ec60bf 100644 > --- a/pom.xml > +++ b/pom.xml > @@ -45,6 +45,7 @@ > <kibana.version>3.1.1</kibana.version> > <kibana4.version>4.1.2</kibana4.version> > <paho.version>1.0.2</paho.version> > + <redisson.version>2.2.8</redisson.version> > <slf4j.version>1.7.7</slf4j.version> > </properties> > > >
