parallel ip - initial checkin Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.artifactVersions b/.artifactVersions new file mode 100644 index 0000000..9774cde --- /dev/null +++ b/.artifactVersions
@@ -0,0 +1,4 @@ +version=0.9.1-SNAPSHOT +relengVersion=0.12.5-SNAPSHOT +relengGroupId=org.lunifera.releng.maven +relengP2Version=0.12.5-SNAPSHOT
diff --git a/.depVersions b/.depVersions new file mode 100644 index 0000000..7f083e3 --- /dev/null +++ b/.depVersions
@@ -0,0 +1,6 @@ +org.eclipse.xtend;min=2.7.3;max=2.8.0 +org.eclipse.xtext;min=2.7.3;max=2.8.0 +org.semanticsoft;min=2.7.3;max=3.0.0 +org.lunifera.dsl;min=0.9.0;max=0.10.0 +org.lunifera;min=0.9.0;max=0.10.0 +com.google.guava;min=10.0.0;max=19.0.0 \ No newline at end of file
diff --git a/.osbp.releng.root b/.osbp.releng.root new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.osbp.releng.root
diff --git a/.project b/.project new file mode 100644 index 0000000..ddbfc5a --- /dev/null +++ b/.project
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.aggregator</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription>
diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/README.md b/README.md new file mode 100644 index 0000000..1cf83a2 --- /dev/null +++ b/README.md
@@ -0,0 +1,4 @@ +lunifera-runtime +================ + +Runtime components for lunifera.org. Like persistence, server integration, OSGi services for BPM, Rules,... \ No newline at end of file
diff --git a/about.html b/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml new file mode 100644 index 0000000..36d599d --- /dev/null +++ b/jenkins.build.config.xml
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2016 - Loetz GmbH&Co.KG --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> +<!--# Module specific parameters for the Jenkins Job --> +<!--#======================================================================= --> + +<jenkins> + + <!-- DO NOT EDIT BELOW THIS LINE --> + <jenkins.build.dependencies> + <jenkins.build.dependency>org.eclipse.osbp.technologystack</jenkins.build.dependency> + </jenkins.build.dependencies> +</jenkins>
diff --git a/launchers/lunifera-runtime - P2 Kepler - Build Skiping Tests.launch b/launchers/lunifera-runtime - P2 Kepler - Build Skiping Tests.launch new file mode 100644 index 0000000..89ef1bd --- /dev/null +++ b/launchers/lunifera-runtime - P2 Kepler - Build Skiping Tests.launch
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType"> +<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/> +<stringAttribute key="M2_GOALS" value="clean verify -fn -Dlunifera.build.skip.license"/> +<booleanAttribute key="M2_NON_RECURSIVE" value="false"/> +<booleanAttribute key="M2_OFFLINE" value="false"/> +<stringAttribute key="M2_PROFILES" value="lunifera.build.p2"/> +<listAttribute key="M2_PROPERTIES"/> +<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/> +<booleanAttribute key="M2_SKIP_TESTS" value="true"/> +<intAttribute key="M2_THREADS" value="1"/> +<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/> +<stringAttribute key="M2_USER_SETTINGS" value=""/> +<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/> +<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> +<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc:/org.eclipse.osbp.runtime}"/> +</launchConfiguration>
diff --git a/launchers/lunifera-runtime - P2 Kepler - Build and Deploy.launch b/launchers/lunifera-runtime - P2 Kepler - Build and Deploy.launch new file mode 100644 index 0000000..ed7d4d6 --- /dev/null +++ b/launchers/lunifera-runtime - P2 Kepler - Build and Deploy.launch
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType"> +<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/> +<stringAttribute key="M2_GOALS" value="clean verify -Dlunifera.deploy.to.local.composite.p2 -Dlunifera.build.skip.license"/> +<booleanAttribute key="M2_NON_RECURSIVE" value="false"/> +<booleanAttribute key="M2_OFFLINE" value="false"/> +<stringAttribute key="M2_PROFILES" value="lunifera.build.p2"/> +<listAttribute key="M2_PROPERTIES"/> +<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/> +<booleanAttribute key="M2_SKIP_TESTS" value="false"/> +<intAttribute key="M2_THREADS" value="1"/> +<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/> +<stringAttribute key="M2_USER_SETTINGS" value=""/> +<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/> +<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> +<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc:/org.eclipse.osbp.runtime}"/> +</launchConfiguration>
diff --git a/launchers/lunifera-runtime - P2 Kepler - Build.launch b/launchers/lunifera-runtime - P2 Kepler - Build.launch new file mode 100644 index 0000000..70950b0 --- /dev/null +++ b/launchers/lunifera-runtime - P2 Kepler - Build.launch
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType"> +<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/> +<stringAttribute key="M2_GOALS" value="clean verify -Dlunifera.build.skip.license"/> +<booleanAttribute key="M2_NON_RECURSIVE" value="false"/> +<booleanAttribute key="M2_OFFLINE" value="false"/> +<stringAttribute key="M2_PROFILES" value="lunifera.build.p2"/> +<listAttribute key="M2_PROPERTIES"/> +<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/> +<booleanAttribute key="M2_SKIP_TESTS" value="false"/> +<intAttribute key="M2_THREADS" value="1"/> +<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/> +<stringAttribute key="M2_USER_SETTINGS" value=""/> +<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/> +<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> +<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc:/org.eclipse.osbp.runtime}"/> +</launchConfiguration>
diff --git a/notice.html b/notice.html new file mode 100644 index 0000000..c3d34c3 --- /dev/null +++ b/notice.html
@@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>April 9, 2014</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code + repository ("Repository") in software modules ("Modules") and made available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and +Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a + href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology + in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the + Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern + the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such + indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to + another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import, + possession, or use, and re-export of encryption software, to see if this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> +</body> +</html>
diff --git a/org.eclipse.osbp.runtime.common.tests/.project b/org.eclipse.osbp.runtime.common.tests/.project new file mode 100644 index 0000000..3063fcc --- /dev/null +++ b/org.eclipse.osbp.runtime.common.tests/.project
@@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.common.tests</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.common.tests/LICENSE.txt b/org.eclipse.osbp.runtime.common.tests/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.common.tests/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.common.tests/META-INF/MANIFEST.MF new file mode 100644 index 0000000..fc612f6 --- /dev/null +++ b/org.eclipse.osbp.runtime.common.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.common.tests +Bundle-SymbolicName: org.eclipse.osbp.runtime.common.tests +Bundle-Version: 0.9.0.qualifier +Bundle-Vendor: Eclipse OSBP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Require-Bundle: org.junit, + org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)" +Bundle-ActivationPolicy: lazy +Import-Package: org.knowhowlab.osgi.testing.assertions;version="1.3.0", + org.knowhowlab.osgi.testing.utils;version="1.1.0", + org.osgi.framework;version="1.7.0"
diff --git a/org.eclipse.osbp.runtime.common.tests/build.properties b/org.eclipse.osbp.runtime.common.tests/build.properties new file mode 100644 index 0000000..56d7765 --- /dev/null +++ b/org.eclipse.osbp.runtime.common.tests/build.properties
@@ -0,0 +1,4 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + .
diff --git a/org.eclipse.osbp.runtime.common.tests/pom.xml b/org.eclipse.osbp.runtime.common.tests/pom.xml new file mode 100644 index 0000000..41795d3 --- /dev/null +++ b/org.eclipse.osbp.runtime.common.tests/pom.xml
@@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.common.tests</artifactId> + <packaging>eclipse-test-plugin</packaging> + + <properties> + <local-p2-site>file:/${basedir}/../behave-osgi-equinox-repository/target/repository</local-p2-site> + <ui.test.vmargs>-Xmx512m -XX:MaxPermSize=256m</ui.test.vmargs> + </properties> + <dependencies> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>org.eclipse.osbp.runtime.component.configuration.manager.test.conf</artifactId> + <version>0.9.0-SNAPSHOT</version> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-surefire-plugin</artifactId> + <configuration> + <includes> + <include>**/*Test.class</include> + </includes> + <failIfNoTests>false</failIfNoTests> + <showEclipseLog>true</showEclipseLog> + <!-- <argLine>${ui.test.vmargs}</argLine> --> + <bundleStartLevel> + <bundle> + <id>org.eclipse.osgi</id> + <level>-1</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>org.eclipse.equinox.common</id> + <level>1</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>org.eclipse.equinox.ds</id> + <level>2</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>org.eclipse.equinox.cm</id> + <level>1</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>org.eclipse.equinox.log</id> + <level>1</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>org.eclipse.osgi.services</id> + <level>1</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>org.eclipse.osbp.runtime.component.configuration.manager.tests</id> + <level>4</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>org.eclipse.osbp.runtime.component.configuration.manager</id> + <level>2</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>org.knowhowlab.osgi.testing.assertions</id> + <level>2</level> + <autoStart>true</autoStart> + </bundle> + <bundle> + <id>org.knowhowlab.osgi.testing.utils</id> + <level>2</level> + <autoStart>true</autoStart> + </bundle> + </bundleStartLevel> + + <dependencies> + <!-- Plugins --> + <dependency> + <type>eclipse-plugin</type> + <artifactId>org.eclipse.osbp.runtime.component.configuration.manager.test.conf</artifactId> + <version>0.9.0-SNAPSHOT</version> + </dependency> + </dependencies> + + <useUIHarness>false</useUIHarness> + <useUIThread>false</useUIThread> + </configuration> + </plugin> + </plugins> + + </build> +</project>
diff --git a/org.eclipse.osbp.runtime.common.tests/src/org/eclipse/osbp/runtime/common/dispose/tests/AbstractDisposableTest.java b/org.eclipse.osbp.runtime.common.tests/src/org/eclipse/osbp/runtime/common/dispose/tests/AbstractDisposableTest.java new file mode 100644 index 0000000..6f967e2 --- /dev/null +++ b/org.eclipse.osbp.runtime.common.tests/src/org/eclipse/osbp/runtime/common/dispose/tests/AbstractDisposableTest.java
@@ -0,0 +1,215 @@ +/******************************************************************************* + * Copyright (c) 2012, 2015 Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Cristiano Gavião - initial API and implementation + *******************************************************************************/ +package org.eclipse.osbp.runtime.common.dispose.tests; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.knowhowlab.osgi.testing.assertions.BundleAssert.assertBundleAvailable; + +import java.util.List; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.knowhowlab.osgi.testing.assertions.BundleAssert; +import org.knowhowlab.osgi.testing.assertions.ServiceAssert; +import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable; +import org.eclipse.osbp.runtime.common.dispose.IDisposable; +import org.osgi.framework.BundleContext; +import org.osgi.framework.FrameworkUtil; + +public class AbstractDisposableTest { + + private static BundleContext bc; + + @BeforeClass + public static void init() { + bc = FrameworkUtil.getBundle(AbstractDisposableTest.class) + .getBundleContext(); + ServiceAssert.setDefaultBundleContext(bc); + BundleAssert.setDefaultBundleContext(bc); + } + + public void ensureNeedBundlesWasInstalled() { + assertBundleAvailable("Runtime-Common bundle is not available", + "org.eclipse.osbp.runtime.common"); + } + + @Test + public void test_isDisposed() { + Disposable d = new Disposable(); + assertFalse(d.isDisposed()); + + d.dispose(); + assertTrue(d.isDisposed()); + } + + @Test + public void test_isDisposing() { + final Disposable d = new Disposable(500); + assertFalse(d.isDisposing()); + + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + d.dispose(); + } + }); + thread.start(); + + try { + Thread.sleep(150); + } catch (InterruptedException e) { + } + assertTrue(d.isDisposing()); + + try { + Thread.sleep(500); + } catch (InterruptedException e) { + } + assertTrue(d.isDisposed()); + } + + @Test + public void test_internalDispose() { + Disposable d = new Disposable(); + assertEquals(0, d.counter); + + d.dispose(); + assertEquals(1, d.counter); + + // only dipose once! + d.dispose(); + assertEquals(1, d.counter); + } + + @Test + public void test_checkDisposed() { + Disposable d = new Disposable(); + d.dispose(); + + // unchecked calls + d.isDisposed(); + d.isDisposing(); + d.dispose(); + + // checked calls + Listener listener = new Listener(); + try { + d.addDisposeListener(listener); + fail("Exception expected"); + } catch (Exception e) { + // expected + } + + try { + d.removeDisposeListener(listener); + fail("Exception expected"); + } catch (Exception e) { + // expected + } + } + + @Test + public void test_DisposeListener() { + Disposable d = new Disposable(); + Listener listener1 = new Listener(); + Listener listener2 = new Listener(); + Listener listener3 = new Listener(); + + d.addDisposeListener(listener1); + d.addDisposeListener(listener2); + d.addDisposeListener(listener3); + assertEquals(3, d.getDisposeListeners().size()); + + // remove listener3 again + d.removeDisposeListener(listener3); + assertEquals(2, d.getDisposeListeners().size()); + + d.dispose(); + assertEquals(1, listener1.counter); + assertEquals(1, listener2.counter); + assertEquals(0, listener3.counter); + assertEquals(0, d.getDisposeListeners().size()); + + // dispose twice + d.dispose(); + assertEquals(1, listener1.counter); + assertEquals(1, listener2.counter); + assertEquals(0, listener3.counter); + } + + @Test + public void test_DisposeListener_disposing() { + final Disposable d = new Disposable(500); + Listener listener = new Listener(); + d.addDisposeListener(listener); + + for (int i = 0; i < 10; i++) { + try { + Thread.sleep(70); + } catch (InterruptedException e) { + } + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + d.dispose(); + } + }); + thread.start(); + } + + assertEquals(1, listener.counter); + } + + private static class Disposable extends AbstractDisposable { + + private int counter; + private int delay; + + private Disposable() { + + } + + private Disposable(int delay) { + this.delay = delay; + } + + @Override + protected void internalDispose() { + counter++; + if (delay > 0) { + try { + Thread.sleep(delay); + } catch (InterruptedException e) { + } + } + } + + @Override + public List<IDisposable.Listener> getDisposeListeners() { + return super.getDisposeListeners(); + } + + } + + private static class Listener implements IDisposable.Listener { + + private int counter; + + @Override + public void notifyDisposed(IDisposable notifier) { + counter++; + } + + } +}
diff --git a/org.eclipse.osbp.runtime.common/.project b/org.eclipse.osbp.runtime.common/.project new file mode 100644 index 0000000..b9e2639 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/.project
@@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.common</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.common/LICENSE.txt b/org.eclipse.osbp.runtime.common/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.common/META-INF/MANIFEST.MF new file mode 100644 index 0000000..959d8d9 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/META-INF/MANIFEST.MF
@@ -0,0 +1,43 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.common +Bundle-Localization: OSGI-INF/l10n/bundle +Bundle-SymbolicName: org.eclipse.osbp.runtime.common +Bundle-Vendor: Eclipse OSBP +Bundle-Version: 0.9.0.qualifier +Bundle-ActivationPolicy: lazy +Export-Package: org.eclipse.osbp.runtime.common.annotations;version="0.9.0", + org.eclipse.osbp.runtime.common.coordination;version="0.9.0";uses:="org.osgi.service.coordinator", + org.eclipse.osbp.runtime.common.datasource;version="0.9.0";uses:="org.eclipse.osbp.runtime.common.datasource.config", + org.eclipse.osbp.runtime.common.datasource.config;version="0.9.0", + org.eclipse.osbp.runtime.common.dispose;version="0.9.0", + org.eclipse.osbp.runtime.common.event;version="0.9.0";uses:="org.osgi.service.event", + org.eclipse.osbp.runtime.common.extender;version="0.9.0", + org.eclipse.osbp.runtime.common.hash;version="0.9.0", + org.eclipse.osbp.runtime.common.help;version="0.9.0", + org.eclipse.osbp.runtime.common.i18n;version="0.9.0";uses:="org.eclipse.osbp.runtime.common.dispose", + org.eclipse.osbp.runtime.common.keystroke;version="0.9.0", + org.eclipse.osbp.runtime.common.memento;version="0.9.0";uses:="org.eclipse.osbp.runtime.common.validation", + org.eclipse.osbp.runtime.common.metric;version="0.9.0", + org.eclipse.osbp.runtime.common.shell;version="0.9.0", + org.eclipse.osbp.runtime.common.state;version="0.9.0", + org.eclipse.osbp.runtime.common.state.impl;version="0.9.0";x-internal:=true, + org.eclipse.osbp.runtime.common.types;version="0.9.0", + org.eclipse.osbp.runtime.common.user;version="0.9.0";uses:="org.osgi.service.prefs", + org.eclipse.osbp.runtime.common.util;version="0.9.0", + org.eclipse.osbp.runtime.common.validation;version="0.9.0" +Import-Package: javax.persistence;version="2.1.0", + org.osgi.framework;version="1.8.0", + org.osgi.service.component;version="1.2.2", + org.osgi.service.component.annotations;version="1.2.0", + org.osgi.service.coordinator;version="1.0.1", + org.osgi.service.event;version="1.3.0", + org.osgi.service.prefs, + org.osgi.util.tracker;version="1.5.1" +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Service-Component: OSGI-INF/* +Require-Bundle: com.google.guava, + org.apache.commons.lang;bundle-version="2.6.0", + org.apache.commons.collections;bundle-version="3.2.0", + org.eclipse.core.runtime;bundle-version="3.10.0", + org.slf4j.api;bundle-version="1.7.2"
diff --git a/org.eclipse.osbp.runtime.common/OSGI-INF/org.eclipse.osbp.runtime.common.state.impl.SharedStateContextProvider.xml b/org.eclipse.osbp.runtime.common/OSGI-INF/org.eclipse.osbp.runtime.common.state.impl.SharedStateContextProvider.xml new file mode 100644 index 0000000..44d894d --- /dev/null +++ b/org.eclipse.osbp.runtime.common/OSGI-INF/org.eclipse.osbp.runtime.common.state.impl.SharedStateContextProvider.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" deactivate="deactivate" immediate="true" name="org.eclipse.osbp.runtime.common.state.impl.SharedStateContextProvider"> + <implementation class="org.eclipse.osbp.runtime.common.state.impl.SharedStateContextProvider"/> + <service> + <provide interface="org.eclipse.osbp.runtime.common.state.ISharedStateContextProvider"/> + </service> + <property name="service.ranking" value="100"/> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/about.html b/org.eclipse.osbp.runtime.common/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/about.ini b/org.eclipse.osbp.runtime.common/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.common/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.common/about.mappings b/org.eclipse.osbp.runtime.common/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.common/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.common/about.properties b/org.eclipse.osbp.runtime.common/about.properties new file mode 100644 index 0000000..80bf6ad --- /dev/null +++ b/org.eclipse.osbp.runtime.common/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.common + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.common/build.properties b/org.eclipse.osbp.runtime.common/build.properties new file mode 100644 index 0000000..e79b84a --- /dev/null +++ b/org.eclipse.osbp.runtime.common/build.properties
@@ -0,0 +1,9 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + OSGI-INF/,\ + .project,\ + .classpath,\ + LICENSE.txt +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.common/pom.xml b/org.eclipse.osbp.runtime.common/pom.xml new file mode 100644 index 0000000..12b4141 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.common</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/CompareType.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/CompareType.java new file mode 100644 index 0000000..3765c4d --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/CompareType.java
@@ -0,0 +1,319 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * The Enum CompareType. + */ +public enum CompareType { + /** + * The '<em><b>EQUALS</b></em>' literal object. <!-- begin-user-doc --> <!-- + * end-user-doc --> + * + * @see #EQUALS_VALUE + * @generated + * @ordered + */ + EQUALS(0, "EQUALS", "=="), + + /** + * The '<em><b>GREATER</b></em>' literal object. <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #GREATER_VALUE + * @generated + * @ordered + */ + GREATER(0, "GREATER", ">"), + + /** + * The '<em><b>LOWER</b></em>' literal object. <!-- begin-user-doc --> <!-- + * end-user-doc --> + * + * @see #LOWER_VALUE + * @generated + * @ordered + */ + LOWER(0, "LOWER", "<"), + + /** + * The '<em><b>GREATER EQ</b></em>' literal object. <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #GREATER_EQ_VALUE + * @generated + * @ordered + */ + GREATER_EQ(0, "GREATER_EQ", ">="), + + /** + * The '<em><b>LOWER EQ</b></em>' literal object. <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * @see #LOWER_EQ_VALUE + * @generated + * @ordered + */ + LOWER_EQ(0, "LOWER_EQ", "<="), + + /** + * The '<em><b>NOT EQ</b></em>' literal object. <!-- begin-user-doc --> <!-- + * end-user-doc --> + * + * @see #NOT_EQ_VALUE + * @generated + * @ordered + */ + NOT_EQ(0, "NOT_EQ", "<>"); + + /** + * The '<em><b>EQUALS</b></em>' literal value. <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>EQUALS</b></em>' literal object isn't clear, + * there really should be more of a description here... + * + * <!-- end-user-doc --> + * + * @see #EQUALS + * @generated + * @ordered + * @model literal="==" + */ + public static final int EQUALS_VALUE = 0; + + /** + * The '<em><b>GREATER</b></em>' literal value. <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>GREATER</b></em>' literal object isn't clear, + * there really should be more of a description here... + * + * <!-- end-user-doc --> + * + * @see #GREATER + * @model literal=">" + * @generated + * @ordered + */ + public static final int GREATER_VALUE = 0; + + /** + * The '<em><b>LOWER</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>LOWER</b></em>' literal object isn't clear, + * there really should be more of a description here... + * + * <!-- end-user-doc --> + * @see #LOWER + * @model literal="<" + * @generated + * @ordered + */ + public static final int LOWER_VALUE = 0; + + /** + * The '<em><b>GREATER EQ</b></em>' literal value. <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>GREATER EQ</b></em>' literal object isn't + * clear, there really should be more of a description here... + * + * <!-- end-user-doc --> + * + * @see #GREATER_EQ + * @model literal=">=" + * @generated + * @ordered + */ + public static final int GREATER_EQ_VALUE = 0; + + /** + * The '<em><b>LOWER EQ</b></em>' literal value. <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>LOWER EQ</b></em>' literal object isn't clear, + * there really should be more of a description here... + * + * <!-- end-user-doc --> + * + * @see #LOWER_EQ + * @model literal="<=" + * @generated + * @ordered + */ + public static final int LOWER_EQ_VALUE = 0; + + /** + * The '<em><b>NOT EQ</b></em>' literal value. <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>NOT EQ</b></em>' literal object isn't clear, + * there really should be more of a description here... + * + * <!-- end-user-doc --> + * + * @see #NOT_EQ + * @model literal="<>" + * @generated + * @ordered + */ + public static final int NOT_EQ_VALUE = 0; + + /** + * An array of all the '<em><b>LComparator Type</b></em>' enumerators. <!-- + * begin-user-doc --> <!-- end-user-doc --> + * + * @generated + */ + private static final CompareType[] VALUES_ARRAY = new CompareType[] { + EQUALS, GREATER, LOWER, GREATER_EQ, LOWER_EQ, NOT_EQ, }; + + /** + * A public read-only list of all the '<em><b>LComparator Type</b></em>' + * enumerators. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @generated + */ + public static final List<CompareType> VALUES = Collections + .unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>LComparator Type</b></em>' literal with the specified + * literal value. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @param literal the literal + * @return the compare type + * @generated + */ + public static CompareType get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + CompareType result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>LComparator Type</b></em>' literal with the specified + * name. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @param name the name + * @return the by name + * @generated + */ + public static CompareType getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + CompareType result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>LComparator Type</b></em>' literal with the specified + * integer value. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @param value the value + * @return the compare type + * @generated + */ + public static CompareType get(int value) { + switch (value) { + case EQUALS_VALUE: + return EQUALS; + } + return null; + } + + /** + * <!-- begin-user-doc --> <!-- end-user-doc -->. + * + * @generated + */ + private final int value; + + /** + * <!-- begin-user-doc --> <!-- end-user-doc -->. + * + * @generated + */ + private final String name; + + /** + * <!-- begin-user-doc --> <!-- end-user-doc -->. + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. <!-- begin-user-doc --> <!-- + * end-user-doc --> + * + * @param value the value + * @param name the name + * @param literal the literal + * @generated + */ + private CompareType(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * <!-- begin-user-doc --> <!-- end-user-doc -->. + * + * @return the value + * @generated + */ + public int getValue() { + return value; + } + + /** + * <!-- begin-user-doc --> <!-- end-user-doc -->. + * + * @return the name + * @generated + */ + public String getName() { + return name; + } + + /** + * <!-- begin-user-doc --> <!-- end-user-doc -->. + * + * @return the literal + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string + * representation. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @return the string + * @generated + */ + @Override + public String toString() { + return literal; + } + +} // CompareType \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Constraint.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Constraint.java new file mode 100644 index 0000000..804d7e8 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Constraint.java
@@ -0,0 +1,36 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation adds a constraint on a relation. Only references to objects + * are allowed, that match the constraint. + */ +@Target({ FIELD }) +@Retention(RUNTIME) +public @interface Constraint { + + /** + * The property of the target type of the reference that must match the enum + * literal. + * + * @return the target enum constraint[] + */ + TargetEnumConstraint[] constraints(); + +} + \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Dirty.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Dirty.java new file mode 100644 index 0000000..48b92e2 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Dirty.java
@@ -0,0 +1,31 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import org.eclipse.osbp.runtime.common.state.ISharedStateContext; + +/** + * This annotation marks fields in DTOs, that it is a dirty-indicator boolean + * field. If the annotation is present for a DTO, then it is automatically + * managed by the {@link ISharedStateContext}. + */ +@Target({ FIELD, METHOD }) +@Retention(RUNTIME) +public @interface Dirty { + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DirtyStateAdapter.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DirtyStateAdapter.java new file mode 100644 index 0000000..a8170e8 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DirtyStateAdapter.java
@@ -0,0 +1,104 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.io.Serializable; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * A property change listener which may be added to several dto instances. It + * sets the dirty flag on a dto and keeps an additional dirty flag for the whole + * structure, where the adapter was added. + */ +public class DirtyStateAdapter implements PropertyChangeListener, Serializable { + + private static final long serialVersionUID = 3286204198033608643L; + + /** The Constant LOGGER. */ + private static final Logger LOGGER = LoggerFactory + .getLogger(DirtyStateAdapter.class); + + /** The dirty. */ + private boolean dirty; + + /** The active. */ + private boolean active; + + /* (non-Javadoc) + * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) + */ + @Override + public void propertyChange(PropertyChangeEvent event) { + if (!active) { + return; + } + Object object = event.getSource(); + Class<?> objClass = object.getClass(); + try { + if (DtoUtils.isDisposeField(objClass, event.getPropertyName())) { + return; + } + // dirty field not forwarded to handle dirty + if (DtoUtils.isDirtyField(objClass, event.getPropertyName())) { + return; + } + } catch (SecurityException ignoreIt) { + LOGGER.error("{}", ignoreIt); + } + + handleDirty(event); + } + + /** + * True, if the adapter handles notifications. + * + * @return true, if is active + */ + public boolean isActive() { + return active; + } + + /** + * True, if the adapter handles notifications. + * + * @param active the new active + */ + public void setActive(boolean active) { + this.active = active; + } + + /** + * Sets the dirty flag. + * + * @param event the event + */ + protected void handleDirty(PropertyChangeEvent event) { + Object object = event.getSource(); + // set the dirty flag to true if available + DtoUtils.invokeDirtySetter(object, true); + + dirty = true; + } + + /** + * Returns true, if the dto structure became dirty. + * + * @return true, if is dirty + */ + public boolean isDirty() { + return dirty; + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Dispose.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Dispose.java new file mode 100644 index 0000000..f31b5bc --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Dispose.java
@@ -0,0 +1,29 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation marks fields in JPA entities and DTOs, that the field is the + * "disposal" indicator. If that value changed to true, the object can be + * removed from any internal caches. + */ +@Target({ FIELD, METHOD }) +@Retention(RUNTIME) +public @interface Dispose { + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainDescription.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainDescription.java new file mode 100644 index 0000000..f93c7c5 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainDescription.java
@@ -0,0 +1,34 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation marks fields in JPA entities and DTOs, that the content is a + * human readable domain description. For instance the description of a product.<br> + * Since descriptions may be based on many field values, this annotation can + * also be used for getter-methods. If a getter is annotated with + * + * #DomainDescription, the getter is used to access the description for that + * instance. + */ +@Target({ FIELD, METHOD }) +@Retention(RUNTIME) +public @interface DomainDescription { + +} + \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainEmbedded.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainEmbedded.java new file mode 100644 index 0000000..964415d --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainEmbedded.java
@@ -0,0 +1,28 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation marks fields in JPA entities and DTOs, that the content is + * embedded. So UIs do not have to provide search fields for it, but need to + * inline its fields into a form. + */ +@Target({ FIELD }) +@Retention(RUNTIME) +public @interface DomainEmbedded { + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainKey.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainKey.java new file mode 100644 index 0000000..1c53bd1 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainKey.java
@@ -0,0 +1,27 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation marks fields in JPA entities and DTOs, that the content is a + * human readable domain key. For instance the number of a product. + */ +@Target({ FIELD }) +@Retention(RUNTIME) +public @interface DomainKey { + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainReference.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainReference.java new file mode 100644 index 0000000..8d8ad84 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DomainReference.java
@@ -0,0 +1,27 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation marks fields in JPA entities and DTOs, that the content is + * reference to another Bean. So UIs may provide a search dialog for it. + */ +@Target({ FIELD }) +@Retention(RUNTIME) +public @interface DomainReference { + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DtoUtils.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DtoUtils.java new file mode 100644 index 0000000..39c6e12 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DtoUtils.java
@@ -0,0 +1,611 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import java.beans.BeanInfo; +import java.beans.IntrospectionException; +import java.beans.Introspector; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.beans.PropertyDescriptor; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.lang.reflect.MethodUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * The Class DtoUtils. + */ +public class DtoUtils { + + /** The Constant LOGGER. */ + private static final Logger LOGGER = LoggerFactory.getLogger(DtoUtils.class); + + /** The infos. */ + private static Map<Class<?>, Info> INFOS = Collections.synchronizedMap(new HashMap<Class<?>, DtoUtils.Info>()); + + /** + * Returns the dispose field. Field annotated with {@link Dispose}. + * + * @param clazz + * the clazz + * @return the dispose field + */ + public static Field getDisposeField(Class<?> clazz) { + Info info = getInfo(clazz); + return info.getDisposeField(); + } + + /** + * Returns the dispose field. Field annotated with {@link Dirty}. + * + * @param clazz + * the clazz + * @return the dirty field + */ + public static Field getDirtyField(Class<?> clazz) { + Info info = getInfo(clazz); + return info.getDirtyField(); + } + + /** + * Returns the domain key field. Field annotated with {@link DomainKey}. + * + * @param clazz + * the clazz + * @return the domain key field + */ + public static Field getDomainKeyField(Class<?> clazz) { + Info info = getInfo(clazz); + return info.getDomainKeyField(); + } + + /** + * Returns the id field. Field annotated with {@link Id}. + * + * @param clazz + * the clazz + * @return the id field + */ + public static Field getIdField(Class<?> clazz) { + Info info = getInfo(clazz); + return info.getIdField(); + } + + /** + * Returns the id key field. Field annotated with {@link Id}. + * + * @param instance + * the instance + * @param idProperty + * the id property + * @return the value + */ + public static Object getValue(Object instance, String idProperty) { + try { + BeanInfo beanInfo = Introspector.getBeanInfo(instance.getClass()); + for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) { + if (pd.getName().equals(idProperty)) { + Method idMethod = pd.getReadMethod(); + return idMethod.invoke(instance); + } + } + } catch (Exception e) { + LOGGER.error("{}", e); + } + return null; + } + + /** + * Returns the domain description field. Field annotated with + * #DomainDescription. + * + * @param clazz + * the clazz + * @return the domain description field + */ + public static Field getDomainDescriptionField(Class<?> clazz) { + Info info = getInfo(clazz); + return info.getDomainDescriptionField(); + } + + /** + * Returns the dispose field. Field annotated with {@link Dirty}. + * + * @param clazz + * the clazz + * @return the dirty getter + */ + public static Method getDirtyGetter(Class<?> clazz) { + Info info = getInfo(clazz); + return info.getDirtyGetter(); + } + + /** + * Returns the dispose field. Field annotated with {@link Dirty}. + * + * @param clazz + * the clazz + * @return the dirty setter + */ + public static Method getDirtySetter(Class<?> clazz) { + Info info = getInfo(clazz); + return info.getDirtySetter(); + } + + /** + * Returns the dispose method. Method annotated with {@link Dispose}. + * + * @param clazz + * the clazz + * @return the dispose method + */ + public static Method getDisposeMethod(Class<?> clazz) { + Info info = getInfo(clazz); + return info.getDisposeMethod(); + } + + /** + * Returns true, if the given field is a dispose field. + * + * @param clazz + * the clazz + * @param fieldName + * the field name + * @return true, if is dispose field + */ + public static boolean isDisposeField(Class<?> clazz, String fieldName) { + Info info = getInfo(clazz); + return info.getDisposeField() != null ? info.getDisposeField().getName().equals(fieldName) : false; + } + + /** + * Returns true, if the given field is a dirty field. Dirty fields indicate + * that the dto is dirty. + * + * @param clazz + * the clazz + * @param fieldName + * the field name + * @return true, if is dirty field + */ + public static boolean isDirtyField(Class<?> clazz, String fieldName) { + Info info = getInfo(clazz); + return info.getDirtyField() != null ? info.getDirtyField().getName().equals(fieldName) : false; + } + + /** + * Returns true, if the given method is a dispose method. + * + * @param clazz + * the clazz + * @param methodName + * the method name + * @return true, if is dispose method + */ + public static boolean isDisposeMethod(Class<?> clazz, String methodName) { + Info info = getInfo(clazz); + return info.getDisposeField() != null ? info.getDisposeMethod().getName().equals(methodName) : false; + } + + /** + * Tries to invoke the dispose method. + * + * @param obj + * the obj + * @return true, if the method could be invoked. False otherwise. + */ + public static boolean invokeDisposeMethod(Object obj) { + Info info = getInfo(obj.getClass()); + if (info != null && info.getDisposeMethod() != null) { + try { + info.getDisposeMethod().invoke(obj, new Object[0]); + } catch (IllegalAccessException e) { + return false; + } catch (IllegalArgumentException e) { + return false; + } catch (InvocationTargetException e) { + return false; + } + } + return true; + } + + /** + * Tries to invoke the setDirty method. + * + * @param obj + * the obj + * @param value + * the value + * @return true, if the method could be invoked. False otherwise. + */ + public static boolean invokeDirtySetter(Object obj, boolean value) { + Info info = getInfo(obj.getClass()); + if (info != null && info.getDirtySetter() != null) { + try { + info.getDirtySetter().invoke(obj, new Object[] { value }); + } catch (IllegalAccessException e) { + return false; + } catch (IllegalArgumentException e) { + return false; + } catch (InvocationTargetException e) { + return false; + } + } + return true; + } + + /** + * Tries to invoke the dirty getter. If there is no dirty getter available, + * the method throws an {@link IllegalAccessException}. + * + * @param obj + * the obj + * @return true, if is dirty + * @throws IllegalAccessException + * the illegal access exception + */ + public static boolean isDirty(Object obj) throws IllegalAccessException { + return invokeDirtyGetter(obj); + } + + /** + * Tries to invoke the isDirty method. + * + * @param obj + * the obj + * @return true, if the method could be invoked. False otherwise. + * @throws IllegalAccessException + * the illegal access exception + */ + public static boolean invokeDirtyGetter(Object obj) throws IllegalAccessException { + Info info = getInfo(obj.getClass()); + if (info != null && info.getDirtySetter() != null) { + try { + return (Boolean) info.getDirtyGetter().invoke(obj, new Object[0]); + } catch (IllegalAccessException e) { + } catch (IllegalArgumentException e) { + } catch (InvocationTargetException e) { + } + } + throw new IllegalAccessException("Not a valid call"); + } + + /** + * Returns the info for the given class. + * + * @param clazz + * the clazz + * @return the info + */ + protected static Info getInfo(Class<?> clazz) { + Info info = INFOS.get(clazz); + if (info == null) { + info = createInfo(clazz); + } + return info; + } + + /** + * Creates a new info. + * + * @param clazz + * the clazz + * @return info + */ + private static Info createInfo(Class<?> clazz) { + Info info = new Info(); + applyFieldInfo(clazz, info); + applyMethodInfo(clazz, info); + + INFOS.put(clazz, info); + + return info; + } + + /** + * Returns the adapter which has proper type from the given dto. Or + * <code>null</code> if no adapter is available. + * + * @param <A> + * the generic type + * @param type + * the type + * @param dto + * the dto + * @return the adapter + */ + @SuppressWarnings("unchecked") + public static <A> A getAdapter(Class<A> type, Object dto) { + if (type == null || dto == null) { + return null; + } + Info info = getInfo(dto.getClass()); + if (info.getPropertyChangeSupportField() == null) { + return null; + } + + try { + info.getPropertyChangeSupportField().setAccessible(true); + PropertyChangeSupport changeSupport = (PropertyChangeSupport) info.getPropertyChangeSupportField().get(dto); + if (changeSupport == null) { + return null; + } + + for (PropertyChangeListener listener : changeSupport.getPropertyChangeListeners()) { + if (type.isAssignableFrom(listener.getClass())) { + return (A) listener; + } + } + } catch (IllegalArgumentException e) { + LOGGER.error("{}", e); + } catch (IllegalAccessException e) { + LOGGER.error("{}", e); + } + return null; + } + + /** + * Registers the adapter as a property changed listener. + * + * @param adapter + * the adapter + * @param dto + * the dto + */ + public static void registerAdapter(PropertyChangeListener adapter, Object dto) { + if (adapter == null || dto == null) { + return; + } + + try { + MethodUtils.invokeMethod(dto, "addPropertyChangeListener", adapter); + } catch (SecurityException e) { + LOGGER.info("Observer for dirtyState handling could not be added for " + dto.getClass().getName()); + } catch (IllegalAccessException e) { + LOGGER.info("Observer for dirtyState handling could not be added for " + dto.getClass().getName()); + } catch (IllegalArgumentException e) { + LOGGER.info("Observer for dirtyState handling could not be added for " + dto.getClass().getName()); + } catch (InvocationTargetException e) { + LOGGER.info("Observer for dirtyState handling could not be added for " + dto.getClass().getName()); + } catch (NoSuchMethodException e) { + LOGGER.info("Observer for dirtyState handling could not be added for " + dto.getClass().getName()); + } + } + + /** + * Applies all required field infos to the info object. + * + * @param clazz + * the clazz + * @param info + * the info + */ + private static void applyFieldInfo(Class<?> clazz, Info info) { + try { + for (Field field : clazz.getDeclaredFields()) { + if (field.getAnnotation(Dispose.class) != null) { + info.disposeField = field; + } + if (field.getAnnotation(DomainKey.class) != null) { + info.domainKeyField = field; + } + if (field.getAnnotation(DomainDescription.class) != null) { + info.domainDescriptionField = field; + } + if (field.getAnnotation(Id.class) != null) { + info.idField = field; + } + + if (field.getType() == PropertyChangeSupport.class) { + info.propertyChangeSupportField = field; + } + + if (field.getAnnotation(Dirty.class) != null) { + info.dirtyField = field; + + try { + BeanInfo beanInfo = Introspector.getBeanInfo(clazz); + for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) { + if (pd.getName().equals(info.dirtyField.getName())) { + info.dirtyPropertyDescriptor = pd; + break; + } + } + } catch (IntrospectionException e) { + LOGGER.error("{}", e); + } + } + if (info.disposeField != null && info.dirtyField != null && info.domainKeyField != null + && info.domainDescriptionField != null && info.idField != null) { + break; + } + } + + if (info.disposeField == null || info.domainKeyField == null || info.domainDescriptionField == null + || info.idField == null) { + Class<?> superClass = clazz.getSuperclass(); + if (superClass != null) { + applyFieldInfo(superClass, info); + } + } + } catch (SecurityException e) { + LOGGER.error("{}", e); + } + } + + /** + * Applies all required field infos to the info object. + * + * @param clazz + * the clazz + * @param info + * the info + */ + private static void applyMethodInfo(Class<?> clazz, Info info) { + try { + for (Method method : clazz.getDeclaredMethods()) { + if (method.getAnnotation(Dispose.class) != null) { + info.disposeMethod = method; + break; + } + } + + if (info.disposeMethod == null) { + Class<?> superClass = clazz.getSuperclass(); + if (superClass != null) { + applyMethodInfo(superClass, info); + } + } + } catch (SecurityException e) { + LOGGER.error("{}", e); + } + } + + /** + * Find field. + * + * @param clazz + * the clazz + * @param name + * the name + * @return the field + */ + protected Field findField(Class<?> clazz, String name) { + try { + Field field = clazz.getDeclaredField(name); + return field; + } catch (NoSuchFieldException e) { + Class<?> superClass = clazz.getSuperclass(); + if (superClass != null) { + return findField(superClass, name); + } + } catch (SecurityException e) { + LOGGER.error("{}", e); + } + return null; + } + + /** + * The Class Info. + */ + private static class Info { + + /** The property change support field. */ + private Field propertyChangeSupportField; + + /** The dispose field. */ + private Field disposeField; + + /** The dispose method. */ + private Method disposeMethod; + + /** The id field. */ + private Field idField; + + /** The dirty field. */ + private Field dirtyField; + + /** The dirty property descriptor. */ + private PropertyDescriptor dirtyPropertyDescriptor; + + /** The domain key field. */ + private Field domainKeyField; + + /** The domain description field. */ + private Field domainDescriptionField; + + /** + * Gets the dispose field. + * + * @return the dispose field + */ + public Field getDisposeField() { + return disposeField; + } + + /** + * Gets the dirty field. + * + * @return the dirty field + */ + public Field getDirtyField() { + return dirtyField; + } + + /** + * Gets the dirty getter. + * + * @return the dirty getter + */ + public Method getDirtyGetter() { + return dirtyPropertyDescriptor != null ? dirtyPropertyDescriptor.getReadMethod() : null; + } + + /** + * Gets the dirty setter. + * + * @return the dirty setter + */ + public Method getDirtySetter() { + return dirtyPropertyDescriptor != null ? dirtyPropertyDescriptor.getWriteMethod() : null; + } + + /** + * Gets the dispose method. + * + * @return the dispose method + */ + public Method getDisposeMethod() { + return disposeMethod; + } + + /** + * Gets the domain key field. + * + * @return the domain key field + */ + public Field getDomainKeyField() { + return domainKeyField; + } + + /** + * Gets the domain description field. + * + * @return the domain description field + */ + public Field getDomainDescriptionField() { + return domainDescriptionField; + } + + /** + * Gets the property change support field. + * + * @return the property change support field + */ + public Field getPropertyChangeSupportField() { + return propertyChangeSupportField; + } + + public Field getIdField() { + return idField; + } + + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Id.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Id.java new file mode 100644 index 0000000..2f6f1de --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Id.java
@@ -0,0 +1,29 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation marks fields in DTOs, that the content is a + * primary key. + */ +@Target({ FIELD }) +@Retention(RUNTIME) +public @interface Id { + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Properties.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Properties.java new file mode 100644 index 0000000..c83510b --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Properties.java
@@ -0,0 +1,34 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation combines many {@link Property} into a compound + * one. + */ +@Target({ FIELD }) +@Retention(RUNTIME) +public @interface Properties { + + /** + * An array of properties. + * + * @return the property[] + */ + Property[] properties(); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/PropertiesUtil.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/PropertiesUtil.java new file mode 100644 index 0000000..8a2fde7 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/PropertiesUtil.java
@@ -0,0 +1,180 @@ +/** + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.lang.reflect.FieldUtils; + +/** + * The Class PropertiesUtil. + */ +public class PropertiesUtil { + + /** + * Returns true, if the property in object contains a @Property with the + * given key. + * + * @param object + * the object + * @param property + * the property may be nested + * @param key + * the key + * @return true, if successful + */ + public static boolean hasKey(Object object, String property, String key) { + return hasKey(object.getClass(), property, key); + } + + /** + * Returns true, if the property in clazz contains a @Property with the + * given key. + * + * @param clazz + * the clazz + * @param property + * the property may be nested + * @param key + * the key + * @return true, if successful + */ + public static boolean hasKey(Class<?> clazz, String property, String key) { + return getValue(clazz, property, key) != null; + } + + /** + * Returns the value of @Property, from the property in object containing a @Property + * with the given key. + * + * @param object + * the object + * @param property + * the property may be nested + * @param key + * the key + * @return the value + */ + public static String getValue(Object object, String property, String key) { + return getValue(object.getClass(), property, key); + } + + /** + * Returns the value of @Property, from the property in clazz containing a @Property + * with the given key. + * + * @param clazz + * the clazz + * @param property + * the property may be nested + * @param key + * the key + * @return the value + */ + public static String getValue(Class<?> clazz, String property, String key) { + Field f = getFieldWithNested(clazz, property); + if (f == null) { + return null; + } + + Properties props = f.getAnnotation(Properties.class); + if (props == null) { + return null; + } + + for (Property prop : props.properties()) { + if (prop.key().equals(key)) { + return prop.value(); + } + } + + return null; + } + + /** + * Returns the field, based on the property. Properties may be nested. + * + * @param clazz + * @param property + * @return + */ + protected static Field getFieldWithNested(Class<?> clazz, String property) { + Field result = null; + if (property.contains(".")) { + // first top-level property, then go deeper in a loop + Class<?> propertyClass = clazz; + String[] tokens = property.split("\\."); + for (int i = 0; i < tokens.length; i++) { + String token = tokens[i].trim(); + result = FieldUtils.getField(propertyClass, token, true); + if (result == null) { + throw new IllegalStateException(String.format( + "Can not access %s for %s", property, + clazz.getName())); + } + propertyClass = result.getType(); + } + } else { + result = FieldUtils.getField(clazz, property, true); + } + return result; + } + + /** + * Returns a map with all key value pairs contained in @Properties. + * + * @param object + * the object + * @param property + * the property may be nested + * @param key + * the key + * @return the properties + */ + public static Map<String, String> getProperties(Object object, + String property, String key) { + return getProperties(object.getClass(), property, key); + } + + /** + * Returns a map with all key value pairs contained in @Properties. + * + * @param clazz + * the clazz + * @param property + * the property may be nested + * @param key + * the key + * @return the properties + */ + public static Map<String, String> getProperties(Class<?> clazz, + String property, String key) { + Field f = getFieldWithNested(clazz, property); + if (f == null) { + return null; + } + + Properties props = f.getAnnotation(Properties.class); + if (props == null) { + return null; + } + + Map<String, String> result = new HashMap<String, String>(); + for (Property prop : props.properties()) { + result.put(prop.key(), prop.value()); + } + + return result; + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Property.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Property.java new file mode 100644 index 0000000..79be768 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/Property.java
@@ -0,0 +1,40 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation adds a key value pair for further processing. + */ +@Target({ FIELD }) +@Retention(RUNTIME) +public @interface Property { + + /** + * The key of the property. + * + * @return the string + */ + String key(); + + /** + * The value of the property. + * + * @return the string + */ + String value(); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/TargetEnumConstraint.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/TargetEnumConstraint.java new file mode 100644 index 0000000..3918830 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/TargetEnumConstraint.java
@@ -0,0 +1,57 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +// TODO: Auto-generated Javadoc +/** + * This annotation adds a constraint on a relation. Only references to objects + * are allowed, that match the constraint. + */ +@Target({ FIELD }) +@Retention(RUNTIME) +public @interface TargetEnumConstraint { + + /** + * The property of the target type of the reference that must match the enum + * literal. + * + * @return the string + */ + String targetProperty(); + + /** + * The enum class used to get the enum literal. + * + * @return the class + */ + Class<?> enumClass(); + + /** + * The name of the enum literal that is used as a filter. + * + * @return the string + */ + String enumLiteral(); + + /** + * The compareType used to execute the filter. + * + * @return the compare type + */ + CompareType compareType() default CompareType.EQUALS; + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/TargetEnumConstraints.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/TargetEnumConstraints.java new file mode 100644 index 0000000..03b89eb --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/TargetEnumConstraints.java
@@ -0,0 +1,35 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +// TODO: Auto-generated Javadoc +/** + * This annotation combines many {@link TargetEnumConstraint} into a compound + * one. + */ +@Target({ FIELD }) +@Retention(RUNTIME) +public @interface TargetEnumConstraints { + + /** + * An array of constraints. + * + * @return the target enum constraint[] + */ + TargetEnumConstraint[] constraints(); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/coordination/CoordinationManager.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/coordination/CoordinationManager.java new file mode 100644 index 0000000..7651d68 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/coordination/CoordinationManager.java
@@ -0,0 +1,132 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.coordination; + +import java.util.Map; +import java.util.UUID; + +import org.eclipse.osbp.runtime.common.state.SharedStateUnitOfWork; +import org.osgi.framework.FrameworkUtil; +import org.osgi.service.coordinator.Coordination; +import org.osgi.service.coordinator.Coordinator; +import org.osgi.util.tracker.ServiceTracker; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Helper methods for OSGi coordination. + */ +public class CoordinationManager { + + /** The Constant LOGGER. */ + private static final Logger LOGGER = LoggerFactory + .getLogger(CoordinationManager.class); + + /** The tracker. */ + private ServiceTracker<Coordinator, Coordinator> tracker; + + /** + * Instantiates a new coordination manager. + */ + public CoordinationManager() { + + } + + /** + * Returns the current coordination or <code>null</code> if no current + * coordination is available. + * + * @return the current coordination + */ + public static Coordination getCurrentCoordination() { + ServiceTracker<Coordinator, Coordinator> tracker = null; + try { + tracker = new ServiceTracker<Coordinator, Coordinator>( + FrameworkUtil.getBundle(CoordinationManager.class) + .getBundleContext(), Coordinator.class, null); + tracker.open(); + Coordinator coordinator = tracker.waitForService(10); + if (coordinator != null) { + return coordinator.peek(); + } else { + LOGGER.error("No coordination service available!"); + } + } catch (InterruptedException e) { + } finally { + if (tracker != null) { + tracker.close(); + } + } + return null; + } + + /** + * Returns a new implicit coordination and makes it the current + * coordination. Returns <code>null</code> if no {@link Coordinator} is + * available. + * <p> + * <b>Attention:</b> Do not forget to release the manager! This will release + * the CoordinatorService. Pending coordinations will be ended abnormally in + * case that no other manager will hold a reference to the + * CoordinationService. + * + * @param properties the properties + * @return the coordination + */ + public Coordination createCurrentCoordination( + Map<Class<?>, Object> properties) { + try { + tracker = new ServiceTracker<Coordinator, Coordinator>( + FrameworkUtil.getBundle(SharedStateUnitOfWork.class) + .getBundleContext(), Coordinator.class, null); + tracker.open(); + Coordinator coordinator = tracker.waitForService(10); + if (coordinator != null) { + Coordination peek = coordinator.begin(UUID.randomUUID() + .toString(), 0); + peek.getVariables().putAll(properties); + return peek; + } else { + LOGGER.error("No coordination service available!"); + } + } catch (InterruptedException e) { + } finally { + } + + return null; + } + + /** + * Releases the {@link Coordinator} service. + */ + public void release() { + if (tracker != null) { + tracker.close(); + tracker = null; + } + } + + /** + * Returns the property with the given key from the current + * "implicit Coordination". Or <code>null</code> if property is not + * available. + * + * @param key the key + * @return the property from current coordination + */ + public static Object getPropertyFromCurrentCoordination(Class<?> key) { + Coordination current = getCurrentCoordination(); + if (current != null) { + return current.getVariables().get(key); + } + return null; + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/IDataSourceService.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/IDataSourceService.java new file mode 100644 index 0000000..04ceb4d --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/IDataSourceService.java
@@ -0,0 +1,71 @@ +/** + * Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernhard Edler - Initial implementation + */ +package org.eclipse.osbp.runtime.common.datasource; + +import java.util.HashMap; +import java.util.List; + +import javax.sql.DataSource; + +import org.eclipse.osbp.runtime.common.datasource.config.CommonDatasourceConfig; + +public interface IDataSourceService { + + List<DataSourceInfo> getDataSourcInfos(String filter); + + List<DataSource> getDataSources(String filter); + + void createDataSource(CommonDatasourceConfig config); + + public static class DataSourceInfo { + private HashMap<String, String> properties; + + private String pid; + + private String url; + + private String databaseName; + + public DataSourceInfo() { + properties = new HashMap<String, String>(); + } + + public HashMap<String, String> getProperties() { + return properties; + } + + public void setProperties(HashMap<String, String> properties) { + this.properties = properties; + } + + /** + * @return the pid + */ + public String getPid() { + return pid; + } + + /** + * @return the url + */ + public String getUrl() { + return url; + } + + /** + * @return the databaseName + */ + public String getDatabaseName() { + return databaseName; + } + + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/ClientDerbyDatasourceConfig.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/ClientDerbyDatasourceConfig.java new file mode 100644 index 0000000..b1f7c98 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/ClientDerbyDatasourceConfig.java
@@ -0,0 +1,278 @@ +/** + * Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernhard Edler - Initial implementation + */ +package org.eclipse.osbp.runtime.common.datasource.config; + +import java.util.HashMap; + +import org.eclipse.osbp.runtime.common.util.OSGiUtil; + +public class ClientDerbyDatasourceConfig extends CommonDatasourceConfig { + + public ClientDerbyDatasourceConfig() { + super(); + DRIVER_NAME = "org.apache.derby.jdbc.ClientDriver"; + properties.put(OSGI_DRIVER_NAME, DRIVER_NAME); + } + + public enum Keys { + CONNECTION_ATTRIBUTES { + public String toString() { + return "connectionAttributes"; + } + }, + CREATE_DATABASE { + public String toString() { + return "createDatabase"; + } + }, + DATASOURCE_NAME { + public String toString() { + return "dataSourceName"; + } + }, + DATABASE_NAME { + public String toString() { + return "databaseName"; + } + }, + DESCRIPTION { + public String toString() { + return "description"; + } + }, + LOG_WRITER { + public String toString() { + return "logWriter"; + } + }, + LOGIN_TIMEOUT { + public String toString() { + return "loginTimeout"; + } + }, + PASSWORD { + public String toString() { + return "password"; + } + }, + PORT_NUMBER { + public String toString() { + return "portNumber"; + } + }, + RETRIEVE_MESSAGE_TEXT { + public String toString() { + return "retrieveMessageText"; + } + }, + SECURITY_MECHANISM { + public String toString() { + return "securityMechanism"; + } + }, + SERVER_NAME { + public String toString() { + return "serverName"; + } + }, + SHUTDOWN_DATABASE { + public String toString() { + return "shutdownDatabase"; + } + }, + SSL { + public String toString() { + return "ssl"; + } + }, + TRACE_DIRECTORY { + public String toString() { + return "traceDirectory"; + } + }, + TRACE_FILE { + public String toString() { + return "traceFile"; + } + }, + TRACE_FILE_APPEND { + public String toString() { + return "traceFileAppend"; + } + }, + TRACE_LEVEL { + public String toString() { + return "traceLevel"; + } + }, + USER { + public String toString() { + return "user"; + } + } + } + + public void setConnectionAttributes(String input) { + setValue(Keys.CONNECTION_ATTRIBUTES.toString(), input); + } + + public String getConnectionAttributes() { + return getValue(Keys.CONNECTION_ATTRIBUTES.toString()); + } + + public void setCreateDatabase(String input) { + setValue(Keys.CREATE_DATABASE.toString(), input); + } + + public String getCreateDatabase() { + return getValue(Keys.CREATE_DATABASE.toString()); + } + + public void setDataBaseName(String input) { + setValue(Keys.DATABASE_NAME.toString(), input); + } + + public String getDataBaseName() { + return getValue(Keys.DATABASE_NAME.toString()); + } + + public void setDataSourceName(String input) { + setValue(Keys.DATASOURCE_NAME.toString(), input); + } + + public String getDataSourceName() { + return getValue(Keys.DATASOURCE_NAME.toString()); + } + + public void setDescription(String input) { + setValue(Keys.DESCRIPTION.toString(), input); + } + + public String getDescription() { + return getValue(Keys.DESCRIPTION.toString()); + } + + public void setLogWriter(String input) { + setValue(Keys.LOG_WRITER.toString(), input); + } + + public String getLogWriter() { + return getValue(Keys.LOG_WRITER.toString()); + } + + public void setLoginTimeout(String input) { + setValue(Keys.LOGIN_TIMEOUT.toString(), input); + } + + public String getLoginTimeout() { + return getValue(Keys.LOGIN_TIMEOUT.toString()); + } + + public void setPassword(String input) { + setValue(Keys.PASSWORD.toString(), input); + } + + public String getPassword() { + return getValue(Keys.PASSWORD.toString()); + } + + public void setPortNumber(String input) { + setValue(Keys.PORT_NUMBER.toString(), input); + } + + public String getPortNumber() { + return getValue(Keys.PORT_NUMBER.toString()); + } + + public void setRetrieveMessageText(String input) { + setValue(Keys.RETRIEVE_MESSAGE_TEXT.toString(), input); + } + + public String getRetrieveMessageText() { + return getValue(Keys.RETRIEVE_MESSAGE_TEXT.toString()); + } + + public void setSecurityMechanism(String input) { + setValue(Keys.SECURITY_MECHANISM.toString(), input); + } + + public String getSecurityMechanism() { + return getValue(Keys.SECURITY_MECHANISM.toString()); + } + + public void setServerName(String input) { + setValue(Keys.SERVER_NAME.toString(), input); + } + + public String getServerName() { + return getValue(Keys.SERVER_NAME.toString()); + } + + public void setShutdownDatabase(String input) { + setValue(Keys.SHUTDOWN_DATABASE.toString(), input); + } + + public String getShutdownDatabase() { + return getValue(Keys.SHUTDOWN_DATABASE.toString()); + } + + public void setSsl(String input) { + setValue(Keys.SSL.toString(), input); + } + + public String getSsl() { + return getValue(Keys.SSL.toString()); + } + + public void setTraceDirectory(String input) { + setValue(Keys.TRACE_DIRECTORY.toString(), input); + } + + public String getTraceDirectory() { + return getValue(Keys.TRACE_DIRECTORY.toString()); + } + + public void setTraceFile(String input) { + setValue(Keys.TRACE_FILE.toString(), input); + } + + public String getTraceFile() { + return getValue(Keys.TRACE_FILE.toString()); + } + + public void setTraceFileAppend(String input) { + setValue(Keys.TRACE_FILE_APPEND.toString(), input); + } + + public String getTraceFileAppend() { + return getValue(Keys.TRACE_FILE_APPEND.toString()); + } + + public void setTraceLevel(String input) { + setValue(Keys.TRACE_LEVEL.toString(), input); + } + + public String getTraceLevel() { + return getValue(Keys.TRACE_LEVEL.toString()); + } + + public void setUser(String input) { + setValue(Keys.USER.toString(), input); + } + + public String getUser() { + return getValue(Keys.USER.toString()); + } + + public HashMap<String, String> filterProperties() { + return filterProperties(OSGiUtil.getEnumValues(Keys.class)); + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/CommonDatasourceConfig.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/CommonDatasourceConfig.java new file mode 100644 index 0000000..bf5b303 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/CommonDatasourceConfig.java
@@ -0,0 +1,73 @@ +/** + * Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernhard Edler - Initial implementation + */ +package org.eclipse.osbp.runtime.common.datasource.config; + +import java.util.Arrays; +import java.util.HashMap; + +import org.eclipse.osbp.runtime.common.util.OSGiUtil; + +public abstract class CommonDatasourceConfig { + public static String DRIVER_NAME = ""; + private static String EMPTY_STRING = ""; + protected static String OSGI_DRIVER_NAME = "osgi.jdbc.driver.name"; + + protected HashMap<String, String> properties; + + public CommonDatasourceConfig() { + properties = new HashMap<String, String>(); + } + + public HashMap<String, String> getProperties() { + return properties; + } + + public void setProperties(HashMap<String, String> properties) { + this.properties = properties; + } + + protected void setValue(String key, String value) { + if (properties.containsKey(key)) { + properties.remove(key); + properties.put(key, value); + } else { + properties.put(key, value); + } + } + + protected String getValue(String key) { + return properties.containsKey(key) ? properties.get(key) : EMPTY_STRING; + } + + protected HashMap<String, String> filterProperties(String[] keySet) { + for (String key : properties.keySet()) { + if (!Arrays.asList(keySet).contains(key)) { + properties.remove(key); + } + } + return properties; + }; + + public static String[] getPropertyKeysForDriver(String driverName) { + if (EmbeddedDerbyDatasourceConfig.DRIVER_NAME.equals(driverName)) { + return OSGiUtil + .getEnumValues(EmbeddedDerbyDatasourceConfig.Keys.class); + } else if (ClientDerbyDatasourceConfig.DRIVER_NAME.equals(driverName)) { + return OSGiUtil + .getEnumValues(ClientDerbyDatasourceConfig.Keys.class); + } else if (MySQLDatasourceConfig.DRIVER_NAME.equals(driverName)) { + return OSGiUtil + .getEnumValues(MySQLDatasourceConfig.Keys.class); + } else { + return null; + } + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/EmbeddedDerbyDatasourceConfig.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/EmbeddedDerbyDatasourceConfig.java new file mode 100644 index 0000000..88a109e --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/EmbeddedDerbyDatasourceConfig.java
@@ -0,0 +1,174 @@ +/** + * Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernhard Edler - Initial implementation + */ +package org.eclipse.osbp.runtime.common.datasource.config; + +import java.util.HashMap; + +import org.eclipse.osbp.runtime.common.util.OSGiUtil; + +public class EmbeddedDerbyDatasourceConfig extends CommonDatasourceConfig { + + public EmbeddedDerbyDatasourceConfig() { + super(); + DRIVER_NAME = "org.apache.derby.jdbc.EmbeddedDriver"; + properties.put(OSGI_DRIVER_NAME, DRIVER_NAME); + } + + public enum Keys { + ATTRIBUTES_AS_PASSWORD { + public String toString() { + return "attributesAsPassword"; + } + }, + CONNECTION_ATTRIBUTES { + public String toString() { + return "connectionAttributes"; + } + }, + CREATE_DATABASE { + public String toString() { + return "createDatabase"; + } + }, + DATABASE_NAME { + public String toString() { + return "databaseName"; + } + }, + DATASOURCE_NAME { + public String toString() { + return "dataSourceName"; + } + }, + DESCRIPTION { + public String toString() { + return "description"; + } + }, + LOG_WRITER { + public String toString() { + return "logWriter"; + } + }, + LOGIN_TIMEOUT { + public String toString() { + return "loginTimeout"; + } + }, + PASSWORD { + public String toString() { + return "password"; + } + }, + SHUTDOWN_DATABASE { + public String toString() { + return "shutdownDatabase"; + } + }, + USER { + public String toString() { + return "user"; + } + } + } + + public void setAttributesAsPassword(String input) { + setValue(Keys.ATTRIBUTES_AS_PASSWORD.toString(), input); + } + + public String getAttributesAsPassword() { + return getValue(Keys.ATTRIBUTES_AS_PASSWORD.toString()); + } + + public void setConnectionAttributes(String input) { + setValue(Keys.CONNECTION_ATTRIBUTES.toString(), input); + } + + public String getConnectionAttributes() { + return getValue(Keys.CONNECTION_ATTRIBUTES.toString()); + } + + public void setCreateDatabase(String input) { + setValue(Keys.CREATE_DATABASE.toString(), input); + } + + public String getCreateDatabase() { + return getValue(Keys.CREATE_DATABASE.toString()); + } + + public void setDataBaseName(String input) { + setValue(Keys.DATABASE_NAME.toString(), input); + } + + public String getDataBaseName() { + return getValue(Keys.DATABASE_NAME.toString()); + } + + public void setDataSourceName(String input) { + setValue(Keys.DATASOURCE_NAME.toString(), input); + } + + public String getDataSourceName() { + return getValue(Keys.DATASOURCE_NAME.toString()); + } + + public void setDescription(String input) { + setValue(Keys.DESCRIPTION.toString(), input); + } + + public String getDescription() { + return getValue(Keys.DESCRIPTION.toString()); + } + + public void setLogWriter(String input) { + setValue(Keys.LOG_WRITER.toString(), input); + } + + public String getLogWriter() { + return getValue(Keys.LOG_WRITER.toString()); + } + + public void setLoginTimeout(String input) { + setValue(Keys.LOGIN_TIMEOUT.toString(), input); + } + + public String getLoginTimeout() { + return getValue(Keys.LOGIN_TIMEOUT.toString()); + } + + public void setPassword(String input) { + setValue(Keys.PASSWORD.toString(), input); + } + + public String getPassword() { + return getValue(Keys.PASSWORD.toString()); + } + + public void setShutdownDatabase(String input) { + setValue(Keys.SHUTDOWN_DATABASE.toString(), input); + } + + public String getShutdownDatabase() { + return getValue(Keys.SHUTDOWN_DATABASE.toString()); + } + + public void setUser(String input) { + setValue(Keys.USER.toString(), input); + } + + public String getUser() { + return getValue(Keys.USER.toString()); + } + + public HashMap<String, String> filterProperties() { + return filterProperties(OSGiUtil.getEnumValues(Keys.class)); + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/MySQLDatasourceConfig.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/MySQLDatasourceConfig.java new file mode 100644 index 0000000..b57808f --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/datasource/config/MySQLDatasourceConfig.java
@@ -0,0 +1,2830 @@ +/** + * Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernhard Edler - Initial implementation + */ +package org.eclipse.osbp.runtime.common.datasource.config; + +import java.util.HashMap; + +import org.eclipse.osbp.runtime.common.util.OSGiUtil; + +public class MySQLDatasourceConfig extends CommonDatasourceConfig { + + public MySQLDatasourceConfig() { + super(); + DRIVER_NAME = "com.mysql.jdbc.Driver"; + properties.put(OSGI_DRIVER_NAME, DRIVER_NAME); + } + + public enum Keys { + ALLOW_LOAD_LOCAL_INFILE { + public String toString() { + return "allowLoadLocalInfile"; + } + }, + + ALLOW_MASTER_DOWN_CONNECTIONS { + public String toString() { + return "allowMasterDownConnections"; + } + }, + + ALLOW_MULTI_QUERIES { + public String toString() { + return "allowMultiQueries"; + } + }, + + ALLOW_NAN_AND_INF { + public String toString() { + return "allowNanAndInf"; + } + }, + + ALLOW_PUBLIC_KEY_RETRIEVAL { + public String toString() { + return "allowPublicKeyRetrieval"; + } + }, + + ALLOW_URL_IN_LOCAL_INFILE { + public String toString() { + return "allowUrlInLocalInfile"; + } + }, + + ALWAYS_SEND_SET_ISOLATION { + public String toString() { + return "alwaysSendSetIsolation"; + } + }, + + AUTHENTICATION_PLUGINS { + public String toString() { + return "authenticationPlugins"; + } + }, + + AUTO_CLOSE_P_STMT_STREAMS { + public String toString() { + return "autoClosePStmtStreams"; + } + }, + + AUTO_DESERIALIZE { + public String toString() { + return "autoDeserialize"; + } + }, + + AUTO_GENERATE_TESTCASE_SCRIPT { + public String toString() { + return "autoGenerateTestcaseScript"; + } + }, + + AUTO_RECONNECT { + public String toString() { + return "autoReconnect"; + } + }, + + AUTO_RECONNECT_FOR_POOLS { + public String toString() { + return "autoReconnectForPools"; + } + }, + + AUTO_SLOW_LOG { + public String toString() { + return "autoSlowLog"; + } + }, + + BLOB_SEND_CHUNK_SIZE { + public String toString() { + return "blobSendChunkSize"; + } + }, + + BLOBS_ARE_STRINGS { + public String toString() { + return "blobsAreStrings"; + } + }, + + CACHE_CALLABLE_STMTS { + public String toString() { + return "cacheCallableStmts"; + } + }, + + CACHE_DEFAULT_TIMEZONE { + public String toString() { + return "cacheDefaultTimezone"; + } + }, + + CACHE_PREP_STMTS { + public String toString() { + return "cachePrepStmts"; + } + }, + + CACHE_RESULT_SET_METADATA { + public String toString() { + return "cacheResultSetMetadata"; + } + }, + + CACHE_SERVER_CONFIGURATION { + public String toString() { + return "cacheServerConfiguration"; + } + }, + + CALLABLE_STMT_CACHE_SIZE { + public String toString() { + return "callableStmtCacheSize"; + } + }, + + CAPITALIZE_TYPE_NAMES { + public String toString() { + return "capitalizeTypeNames"; + } + }, + + CHARACTER_ENCODING { + public String toString() { + return "characterEncoding"; + } + }, + + CHARACTER_SET_RESULTS { + public String toString() { + return "characterSetResults"; + } + }, + + CLIENT_CERTIFICATE_KEY_STORE_PASSWORD { + public String toString() { + return "clientCertificateKeyStorePassword"; + } + }, + + CLIENT_CERTIFICATE_KEY_STORE_TYPE { + public String toString() { + return "clientCertificateKeyStoreType"; + } + }, + + CLIENT_CERTIFICATE_KEY_STORE_URL { + public String toString() { + return "clientCertificateKeyStoreUrl"; + } + }, + + CLIENT_INFO_PROVIDER { + public String toString() { + return "clientInfoProvider"; + } + }, + + CLOB_CHARACTER_ENCODING { + public String toString() { + return "clobCharacterEncoding"; + } + }, + + CLOBBER_STREAMING_RESULTS { + public String toString() { + return "clobberStreamingResults"; + } + }, + + COMPENSATE_ON_DUPLICATE_KEY_UPDATE_COUNTS { + public String toString() { + return "compensateOnDuplicateKeyUpdateCounts"; + } + }, + + CONNECT_TIMEOUT { + public String toString() { + return "connectTimeout"; + } + }, + + CONNECTION_ATTRIBUTES { + public String toString() { + return "connectionAttributes"; + } + }, + + CONNECTION_COLLATION { + public String toString() { + return "connectionCollation"; + } + }, + + CONNECTION_LIFECYCLE_INTERCEPTORS { + public String toString() { + return "connectionLifecycleInterceptors"; + } + }, + + CONTINUE_BATCH_ON_ERROR { + public String toString() { + return "continueBatchOnError"; + } + }, + + CREATE_DATABASE_IF_NOT_EXIST { + public String toString() { + return "createDatabaseIfNotExist"; + } + }, + + DEFAULT_AUTHENTICATION_PLUGIN { + public String toString() { + return "defaultAuthenticationPlugin"; + } + }, + + DEFAULT_FETCH_SIZE { + public String toString() { + return "defaultFetchSize"; + } + }, + + DETECT_CUSTOM_COLLATIONS { + public String toString() { + return "detectCustomCollations"; + } + }, + + DISABLED_AUTHENTICATION_PLUGINS { + public String toString() { + return "disabledAuthenticationPlugins"; + } + }, + + DISCONNECT_ON_EXPIRED_PASSWORDS { + public String toString() { + return "disconnectOnExpiredPasswords"; + } + }, + + DONT_CHECK_ON_DUPLICATE_KEY_UPDATE_IN_S_Q_L { + public String toString() { + return "dontCheckOnDuplicateKeyUpdateInSQL"; + } + }, + + DONT_TRACK_OPEN_RESOURCES { + public String toString() { + return "dontTrackOpenResources"; + } + }, + + DUMP_METADATA_ON_COLUMN_NOT_FOUND { + public String toString() { + return "dumpMetadataOnColumnNotFound"; + } + }, + + DUMP_QUERIES_ON_EXCEPTION { + public String toString() { + return "dumpQueriesOnException"; + } + }, + + DYNAMIC_CALENDARS { + public String toString() { + return "dynamicCalendars"; + } + }, + + ELIDE_SET_AUTO_COMMITS { + public String toString() { + return "elideSetAutoCommits"; + } + }, + + EMPTY_STRINGS_CONVERT_TO_ZERO { + public String toString() { + return "emptyStringsConvertToZero"; + } + }, + + EMULATE_LOCATORS { + public String toString() { + return "emulateLocators"; + } + }, + + EMULATE_UNSUPPORTED_PSTMTS { + public String toString() { + return "emulateUnsupportedPstmts"; + } + }, + + ENABLE_PACKET_DEBUG { + public String toString() { + return "enablePacketDebug"; + } + }, + + ENABLE_QUERY_TIMEOUTS { + public String toString() { + return "enableQueryTimeouts"; + } + }, + + EXCEPTION_INTERCEPTORS { + public String toString() { + return "exceptionInterceptors"; + } + }, + + EXPLAIN_SLOW_QUERIES { + public String toString() { + return "explainSlowQueries"; + } + }, + + FAIL_OVER_READ_ONLY { + public String toString() { + return "failOverReadOnly"; + } + }, + + FUNCTIONS_NEVER_RETURN_BLOBS { + public String toString() { + return "functionsNeverReturnBlobs"; + } + }, + + GATHER_PERF_METRICS { + public String toString() { + return "gatherPerfMetrics"; + } + }, + + GENERATE_SIMPLE_PARAMETER_METADATA { + public String toString() { + return "generateSimpleParameterMetadata"; + } + }, + + GET_PROCEDURES_RETURNS_FUNCTIONS { + public String toString() { + return "getProceduresReturnsFunctions"; + } + }, + + HOLD_RESULTS_OPEN_OVER_STATEMENT_CLOSE { + public String toString() { + return "holdResultsOpenOverStatementClose"; + } + }, + + IGNORE_NON_TX_TABLES { + public String toString() { + return "ignoreNonTxTables"; + } + }, + + INCLUDE_INNODB_STATUS_IN_DEADLOCK_EXCEPTIONS { + public String toString() { + return "includeInnodbStatusInDeadlockExceptions"; + } + }, + + INCLUDE_THREAD_DUMP_IN_DEADLOCK_EXCEPTIONS { + public String toString() { + return "includeThreadDumpInDeadlockExceptions"; + } + }, + + INCLUDE_THREAD_NAMES_AS_STATEMENT_COMMENT { + public String toString() { + return "includeThreadNamesAsStatementComment"; + } + }, + + INITIAL_TIMEOUT { + public String toString() { + return "initialTimeout"; + } + }, + + INTERACTIVE_CLIENT { + public String toString() { + return "interactiveClient"; + } + }, + + JDBC_COMPLIANT_TRUNCATION { + public String toString() { + return "jdbcCompliantTruncation"; + } + }, + + LARGE_ROW_SIZE_THRESHOLD { + public String toString() { + return "largeRowSizeThreshold"; + } + }, + + LOAD_BALANCE_AUTO_COMMIT_STATEMENT_REGEX { + public String toString() { + return "loadBalanceAutoCommitStatementRegex"; + } + }, + + LOAD_BALANCE_AUTO_COMMIT_STATEMENT_THRESHOLD { + public String toString() { + return "loadBalanceAutoCommitStatementThreshold"; + } + }, + + LOAD_BALANCE_BLACKLIST_TIMEOUT { + public String toString() { + return "loadBalanceBlacklistTimeout"; + } + }, + + LOAD_BALANCE_CONNECTION_GROUP { + public String toString() { + return "loadBalanceConnectionGroup"; + } + }, + + LOAD_BALANCE_ENABLE_J_M_X { + public String toString() { + return "loadBalanceEnableJMX"; + } + }, + + LOAD_BALANCE_EXCEPTION_CHECKER { + public String toString() { + return "loadBalanceExceptionChecker"; + } + }, + + LOAD_BALANCE_PING_TIMEOUT { + public String toString() { + return "loadBalancePingTimeout"; + } + }, + + LOAD_BALANCE_S_Q_L_EXCEPTION_SUBCLASS_FAILOVER { + public String toString() { + return "loadBalanceSQLExceptionSubclassFailover"; + } + }, + + LOAD_BALANCE_S_Q_L_STATE_FAILOVER { + public String toString() { + return "loadBalanceSQLStateFailover"; + } + }, + + LOAD_BALANCE_STRATEGY { + public String toString() { + return "loadBalanceStrategy"; + } + }, + + LOAD_BALANCE_VALIDATE_CONNECTION_ON_SWAP_SERVER { + public String toString() { + return "loadBalanceValidateConnectionOnSwapServer"; + } + }, + + LOCAL_SOCKET_ADDRESS { + public String toString() { + return "localSocketAddress"; + } + }, + + LOCATOR_FETCH_BUFFER_SIZE { + public String toString() { + return "locatorFetchBufferSize"; + } + }, + + LOG_SLOW_QUERIES { + public String toString() { + return "logSlowQueries"; + } + }, + + LOG_XA_COMMANDS { + public String toString() { + return "logXaCommands"; + } + }, + + LOGGER { + public String toString() { + return "logger"; + } + }, + + MAINTAIN_TIME_STATS { + public String toString() { + return "maintainTimeStats"; + } + }, + + MAX_ALLOWED_PACKET { + public String toString() { + return "maxAllowedPacket"; + } + }, + + MAX_QUERY_SIZE_TO_LOG { + public String toString() { + return "maxQuerySizeToLog"; + } + }, + + MAX_RECONNECTS { + public String toString() { + return "maxReconnects"; + } + }, + + MAX_ROWS { + public String toString() { + return "maxRows"; + } + }, + + METADATA_CACHE_SIZE { + public String toString() { + return "metadataCacheSize"; + } + }, + + NET_TIMEOUT_FOR_STREAMING_RESULTS { + public String toString() { + return "netTimeoutForStreamingResults"; + } + }, + + NO_ACCESS_TO_PROCEDURE_BODIES { + public String toString() { + return "noAccessToProcedureBodies"; + } + }, + + NO_DATETIME_STRING_SYNC { + public String toString() { + return "noDatetimeStringSync"; + } + }, + + NO_TIMEZONE_CONVERSION_FOR_DATE_TYPE { + public String toString() { + return "noTimezoneConversionForDateType"; + } + }, + + NO_TIMEZONE_CONVERSION_FOR_TIME_TYPE { + public String toString() { + return "noTimezoneConversionForTimeType"; + } + }, + + NULL_CATALOG_MEANS_CURRENT { + public String toString() { + return "nullCatalogMeansCurrent"; + } + }, + + NULL_NAME_PATTERN_MATCHES_ALL { + public String toString() { + return "nullNamePatternMatchesAll"; + } + }, + + OVERRIDE_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY { + public String toString() { + return "overrideSupportsIntegrityEnhancementFacility"; + } + }, + + PACKET_DEBUG_BUFFER_SIZE { + public String toString() { + return "packetDebugBufferSize"; + } + }, + + PAD_CHARS_WITH_SPACE { + public String toString() { + return "padCharsWithSpace"; + } + }, + + PARANOID { + public String toString() { + return "paranoid"; + } + }, + + PARSE_INFO_CACHE_FACTORY { + public String toString() { + return "parseInfoCacheFactory"; + } + }, + + PASSWORD { + public String toString() { + return "password"; + } + }, + + PASSWORD_CHARACTER_ENCODING { + public String toString() { + return "passwordCharacterEncoding"; + } + }, + + PEDANTIC { + public String toString() { + return "pedantic"; + } + }, + + PIN_GLOBAL_TX_TO_PHYSICAL_CONNECTION { + public String toString() { + return "pinGlobalTxToPhysicalConnection"; + } + }, + + POPULATE_INSERT_ROW_WITH_DEFAULT_VALUES { + public String toString() { + return "populateInsertRowWithDefaultValues"; + } + }, + + PREP_STMT_CACHE_SIZE { + public String toString() { + return "prepStmtCacheSize"; + } + }, + + PREP_STMT_CACHE_SQL_LIMIT { + public String toString() { + return "prepStmtCacheSqlLimit"; + } + }, + + PROCESS_ESCAPE_CODES_FOR_PREP_STMTS { + public String toString() { + return "processEscapeCodesForPrepStmts"; + } + }, + + PROFILE_S_Q_L { + public String toString() { + return "profileSQL"; + } + }, + + PROFILE_SQL { + public String toString() { + return "profileSql"; + } + }, + + PROFILER_EVENT_HANDLER { + public String toString() { + return "profilerEventHandler"; + } + }, + + PROPERTIES_TRANSFORM { + public String toString() { + return "propertiesTransform"; + } + }, + + QUERIES_BEFORE_RETRY_MASTER { + public String toString() { + return "queriesBeforeRetryMaster"; + } + }, + + QUERY_TIMEOUT_KILLS_CONNECTION { + public String toString() { + return "queryTimeoutKillsConnection"; + } + }, + + READ_ONLY_PROPAGATES_TO_SERVER { + public String toString() { + return "readOnlyPropagatesToServer"; + } + }, + + RECONNECT_AT_TX_END { + public String toString() { + return "reconnectAtTxEnd"; + } + }, + + RELAX_AUTO_COMMIT { + public String toString() { + return "relaxAutoCommit"; + } + }, + + REPLICATION_ENABLE_J_M_X { + public String toString() { + return "replicationEnableJMX"; + } + }, + + REPORT_METRICS_INTERVAL_MILLIS { + public String toString() { + return "reportMetricsIntervalMillis"; + } + }, + + REQUIRE_S_S_L { + public String toString() { + return "requireSSL"; + } + }, + + RESOURCE_ID { + public String toString() { + return "resourceId"; + } + }, + + RESULT_SET_SIZE_THRESHOLD { + public String toString() { + return "resultSetSizeThreshold"; + } + }, + + RETAIN_STATEMENT_AFTER_RESULT_SET_CLOSE { + public String toString() { + return "retainStatementAfterResultSetClose"; + } + }, + + RETRIES_ALL_DOWN { + public String toString() { + return "retriesAllDown"; + } + }, + + REWRITE_BATCHED_STATEMENTS { + public String toString() { + return "rewriteBatchedStatements"; + } + }, + + ROLLBACK_ON_POOLED_CLOSE { + public String toString() { + return "rollbackOnPooledClose"; + } + }, + + ROUND_ROBIN_LOAD_BALANCE { + public String toString() { + return "roundRobinLoadBalance"; + } + }, + + RUNNING_C_T_S13 { + public String toString() { + return "runningCTS13"; + } + }, + + SECONDS_BEFORE_RETRY_MASTER { + public String toString() { + return "secondsBeforeRetryMaster"; + } + }, + + SELF_DESTRUCT_ON_PING_MAX_OPERATIONS { + public String toString() { + return "selfDestructOnPingMaxOperations"; + } + }, + + SELF_DESTRUCT_ON_PING_SECONDS_LIFETIME { + public String toString() { + return "selfDestructOnPingSecondsLifetime"; + } + }, + + SERVER_CONFIG_CACHE_FACTORY { + public String toString() { + return "serverConfigCacheFactory"; + } + }, + + SERVER_R_S_A_PUBLIC_KEY_FILE { + public String toString() { + return "serverRSAPublicKeyFile"; + } + }, + + SERVER_TIMEZONE { + public String toString() { + return "serverTimezone"; + } + }, + + SESSION_VARIABLES { + public String toString() { + return "sessionVariables"; + } + }, + + SLOW_QUERY_THRESHOLD_MILLIS { + public String toString() { + return "slowQueryThresholdMillis"; + } + }, + + SLOW_QUERY_THRESHOLD_NANOS { + public String toString() { + return "slowQueryThresholdNanos"; + } + }, + + SOCKET_FACTORY { + public String toString() { + return "socketFactory"; + } + }, + + SOCKET_TIMEOUT { + public String toString() { + return "socketTimeout"; + } + }, + + SOCKS_PROXY_HOST { + public String toString() { + return "socksProxyHost"; + } + }, + + SOCKS_PROXY_PORT { + public String toString() { + return "socksProxyPort"; + } + }, + + STATEMENT_INTERCEPTORS { + public String toString() { + return "statementInterceptors"; + } + }, + + STRICT_FLOATING_POINT { + public String toString() { + return "strictFloatingPoint"; + } + }, + + STRICT_UPDATES { + public String toString() { + return "strictUpdates"; + } + }, + + TCP_KEEP_ALIVE { + public String toString() { + return "tcpKeepAlive"; + } + }, + + TCP_NO_DELAY { + public String toString() { + return "tcpNoDelay"; + } + }, + + TCP_RCV_BUF { + public String toString() { + return "tcpRcvBuf"; + } + }, + + TCP_SND_BUF { + public String toString() { + return "tcpSndBuf"; + } + }, + + TCP_TRAFFIC_CLASS { + public String toString() { + return "tcpTrafficClass"; + } + }, + + TINY_INT1IS_BIT { + public String toString() { + return "tinyInt1isBit"; + } + }, + + TRACE_PROTOCOL { + public String toString() { + return "traceProtocol"; + } + }, + + TRANSFORMED_BIT_IS_BOOLEAN { + public String toString() { + return "transformedBitIsBoolean"; + } + }, + + TREAT_UTIL_DATE_AS_TIMESTAMP { + public String toString() { + return "treatUtilDateAsTimestamp"; + } + }, + + TRUST_CERTIFICATE_KEY_STORE_PASSWORD { + public String toString() { + return "trustCertificateKeyStorePassword"; + } + }, + + TRUST_CERTIFICATE_KEY_STORE_TYPE { + public String toString() { + return "trustCertificateKeyStoreType"; + } + }, + + TRUST_CERTIFICATE_KEY_STORE_URL { + public String toString() { + return "trustCertificateKeyStoreUrl"; + } + }, + + ULTRA_DEV_HACK { + public String toString() { + return "ultraDevHack"; + } + }, + + USE_AFFECTED_ROWS { + public String toString() { + return "useAffectedRows"; + } + }, + + USE_BLOB_TO_STORE_U_T_F8_OUTSIDE_B_M_P { + public String toString() { + return "useBlobToStoreUTF8OutsideBMP"; + } + }, + + USE_COLUMN_NAMES_IN_FIND_COLUMN { + public String toString() { + return "useColumnNamesInFindColumn"; + } + }, + + USE_COMPRESSION { + public String toString() { + return "useCompression"; + } + }, + + USE_CONFIGS { + public String toString() { + return "useConfigs"; + } + }, + + USE_CURSOR_FETCH { + public String toString() { + return "useCursorFetch"; + } + }, + + USE_DIRECT_ROW_UNPACK { + public String toString() { + return "useDirectRowUnpack"; + } + }, + + USE_DYNAMIC_CHARSET_INFO { + public String toString() { + return "useDynamicCharsetInfo"; + } + }, + + USE_FAST_DATE_PARSING { + public String toString() { + return "useFastDateParsing"; + } + }, + + USE_FAST_INT_PARSING { + public String toString() { + return "useFastIntParsing"; + } + }, + + USE_GMT_MILLIS_FOR_DATETIMES { + public String toString() { + return "useGmtMillisForDatetimes"; + } + }, + + USE_HOSTS_IN_PRIVILEGES { + public String toString() { + return "useHostsInPrivileges"; + } + }, + + USE_INFORMATION_SCHEMA { + public String toString() { + return "useInformationSchema"; + } + }, + + USE_J_D_B_C_COMPLIANT_TIMEZONE_SHIFT { + public String toString() { + return "useJDBCCompliantTimezoneShift"; + } + }, + + USE_JVM_CHARSET_CONVERTERS { + public String toString() { + return "useJvmCharsetConverters"; + } + }, + + USE_LEGACY_DATETIME_CODE { + public String toString() { + return "useLegacyDatetimeCode"; + } + }, + + USE_LOCAL_SESSION_STATE { + public String toString() { + return "useLocalSessionState"; + } + }, + + USE_LOCAL_TRANSACTION_STATE { + public String toString() { + return "useLocalTransactionState"; + } + }, + + USE_NANOS_FOR_ELAPSED_TIME { + public String toString() { + return "useNanosForElapsedTime"; + } + }, + + USE_OLD_ALIAS_METADATA_BEHAVIOR { + public String toString() { + return "useOldAliasMetadataBehavior"; + } + }, + + USE_OLD_U_T_F8_BEHAVIOR { + public String toString() { + return "useOldUTF8Behavior"; + } + }, + + USE_ONLY_SERVER_ERROR_MESSAGES { + public String toString() { + return "useOnlyServerErrorMessages"; + } + }, + + USE_READ_AHEAD_INPUT { + public String toString() { + return "useReadAheadInput"; + } + }, + + USE_S_S_L { + public String toString() { + return "useSSL"; + } + }, + + USE_S_S_P_S_COMPATIBLE_TIMEZONE_SHIFT { + public String toString() { + return "useSSPSCompatibleTimezoneShift"; + } + }, + + USE_SERVER_PREP_STMTS { + public String toString() { + return "useServerPrepStmts"; + } + }, + + USE_SQL_STATE_CODES { + public String toString() { + return "useSqlStateCodes"; + } + }, + + USE_STREAM_LENGTHS_IN_PREP_STMTS { + public String toString() { + return "useStreamLengthsInPrepStmts"; + } + }, + + USE_TIMEZONE { + public String toString() { + return "useTimezone"; + } + }, + + USE_UNBUFFERED_INPUT { + public String toString() { + return "useUnbufferedInput"; + } + }, + + USE_UNICODE { + public String toString() { + return "useUnicode"; + } + }, + + USE_USAGE_ADVISOR { + public String toString() { + return "useUsageAdvisor"; + } + }, + + USER { + public String toString() { + return "user"; + } + }, + + UTF8_OUTSIDE_BMP_EXCLUDED_COLUMN_NAME_PATTERN { + public String toString() { + return "utf8OutsideBmpExcludedColumnNamePattern"; + } + }, + + UTF8_OUTSIDE_BMP_INCLUDED_COLUMN_NAME_PATTERN { + public String toString() { + return "utf8OutsideBmpIncludedColumnNamePattern"; + } + }, + + VERIFY_SERVER_CERTIFICATE { + public String toString() { + return "verifyServerCertificate"; + } + }, + + ZERO_DATE_TIME_BEHAVIOR { + public String toString() { + return "zeroDateTimeBehavior"; + } + } + } + + public void setAllowLoadLocalInfile(String input) { + setValue(Keys.ALLOW_LOAD_LOCAL_INFILE.toString(), input); + } + + public String getAllowLoadLocalInfile() { + return getValue(Keys.ALLOW_LOAD_LOCAL_INFILE.toString()); + }; + + public void setAllowMasterDownConnections(String input) { + setValue(Keys.ALLOW_MASTER_DOWN_CONNECTIONS.toString(), input); + } + + public String getAllowMasterDownConnections() { + return getValue(Keys.ALLOW_MASTER_DOWN_CONNECTIONS.toString()); + }; + + public void setAllowMultiQueries(String input) { + setValue(Keys.ALLOW_MULTI_QUERIES.toString(), input); + } + + public String getAllowMultiQueries() { + return getValue(Keys.ALLOW_MULTI_QUERIES.toString()); + }; + + public void setAllowNanAndInf(String input) { + setValue(Keys.ALLOW_NAN_AND_INF.toString(), input); + } + + public String getAllowNanAndInf() { + return getValue(Keys.ALLOW_NAN_AND_INF.toString()); + }; + + public void setAllowPublicKeyRetrieval(String input) { + setValue(Keys.ALLOW_PUBLIC_KEY_RETRIEVAL.toString(), input); + } + + public String getAllowPublicKeyRetrieval() { + return getValue(Keys.ALLOW_PUBLIC_KEY_RETRIEVAL.toString()); + }; + + public void setAllowUrlInLocalInfile(String input) { + setValue(Keys.ALLOW_URL_IN_LOCAL_INFILE.toString(), input); + } + + public String getAllowUrlInLocalInfile() { + return getValue(Keys.ALLOW_URL_IN_LOCAL_INFILE.toString()); + }; + + public void setAlwaysSendSetIsolation(String input) { + setValue(Keys.ALWAYS_SEND_SET_ISOLATION.toString(), input); + } + + public String getAlwaysSendSetIsolation() { + return getValue(Keys.ALWAYS_SEND_SET_ISOLATION.toString()); + }; + + public void setAuthenticationPlugins(String input) { + setValue(Keys.AUTHENTICATION_PLUGINS.toString(), input); + } + + public String getAuthenticationPlugins() { + return getValue(Keys.AUTHENTICATION_PLUGINS.toString()); + }; + + public void setAutoClosePStmtStreams(String input) { + setValue(Keys.AUTO_CLOSE_P_STMT_STREAMS.toString(), input); + } + + public String getAutoClosePStmtStreams() { + return getValue(Keys.AUTO_CLOSE_P_STMT_STREAMS.toString()); + }; + + public void setAutoDeserialize(String input) { + setValue(Keys.AUTO_DESERIALIZE.toString(), input); + } + + public String getAutoDeserialize() { + return getValue(Keys.AUTO_DESERIALIZE.toString()); + }; + + public void setAutoGenerateTestcaseScript(String input) { + setValue(Keys.AUTO_GENERATE_TESTCASE_SCRIPT.toString(), input); + } + + public String getAutoGenerateTestcaseScript() { + return getValue(Keys.AUTO_GENERATE_TESTCASE_SCRIPT.toString()); + }; + + public void setAutoReconnect(String input) { + setValue(Keys.AUTO_RECONNECT.toString(), input); + } + + public String getAutoReconnect() { + return getValue(Keys.AUTO_RECONNECT.toString()); + }; + + public void setAutoReconnectForPools(String input) { + setValue(Keys.AUTO_RECONNECT_FOR_POOLS.toString(), input); + } + + public String getAutoReconnectForPools() { + return getValue(Keys.AUTO_RECONNECT_FOR_POOLS.toString()); + }; + + public void setAutoSlowLog(String input) { + setValue(Keys.AUTO_SLOW_LOG.toString(), input); + } + + public String getAutoSlowLog() { + return getValue(Keys.AUTO_SLOW_LOG.toString()); + }; + + public void setBlobSendChunkSize(String input) { + setValue(Keys.BLOB_SEND_CHUNK_SIZE.toString(), input); + } + + public String getBlobSendChunkSize() { + return getValue(Keys.BLOB_SEND_CHUNK_SIZE.toString()); + }; + + public void setBlobsAreStrings(String input) { + setValue(Keys.BLOBS_ARE_STRINGS.toString(), input); + } + + public String getBlobsAreStrings() { + return getValue(Keys.BLOBS_ARE_STRINGS.toString()); + }; + + public void setCacheCallableStmts(String input) { + setValue(Keys.CACHE_CALLABLE_STMTS.toString(), input); + } + + public String getCacheCallableStmts() { + return getValue(Keys.CACHE_CALLABLE_STMTS.toString()); + }; + + public void setCacheDefaultTimezone(String input) { + setValue(Keys.CACHE_DEFAULT_TIMEZONE.toString(), input); + } + + public String getCacheDefaultTimezone() { + return getValue(Keys.CACHE_DEFAULT_TIMEZONE.toString()); + }; + + public void setCachePrepStmts(String input) { + setValue(Keys.CACHE_PREP_STMTS.toString(), input); + } + + public String getCachePrepStmts() { + return getValue(Keys.CACHE_PREP_STMTS.toString()); + }; + + public void setCacheResultSetMetadata(String input) { + setValue(Keys.CACHE_RESULT_SET_METADATA.toString(), input); + } + + public String getCacheResultSetMetadata() { + return getValue(Keys.CACHE_RESULT_SET_METADATA.toString()); + }; + + public void setCacheServerConfiguration(String input) { + setValue(Keys.CACHE_SERVER_CONFIGURATION.toString(), input); + } + + public String getCacheServerConfiguration() { + return getValue(Keys.CACHE_SERVER_CONFIGURATION.toString()); + }; + + public void setCallableStmtCacheSize(String input) { + setValue(Keys.CALLABLE_STMT_CACHE_SIZE.toString(), input); + } + + public String getCallableStmtCacheSize() { + return getValue(Keys.CALLABLE_STMT_CACHE_SIZE.toString()); + }; + + public void setCapitalizeTypeNames(String input) { + setValue(Keys.CAPITALIZE_TYPE_NAMES.toString(), input); + } + + public String getCapitalizeTypeNames() { + return getValue(Keys.CAPITALIZE_TYPE_NAMES.toString()); + }; + + public void setCharacterEncoding(String input) { + setValue(Keys.CHARACTER_ENCODING.toString(), input); + } + + public String getCharacterEncoding() { + return getValue(Keys.CHARACTER_ENCODING.toString()); + }; + + public void setCharacterSetResults(String input) { + setValue(Keys.CHARACTER_SET_RESULTS.toString(), input); + } + + public String getCharacterSetResults() { + return getValue(Keys.CHARACTER_SET_RESULTS.toString()); + }; + + public void setClientCertificateKeyStorePassword(String input) { + setValue(Keys.CLIENT_CERTIFICATE_KEY_STORE_PASSWORD.toString(), input); + } + + public String getClientCertificateKeyStorePassword() { + return getValue(Keys.CLIENT_CERTIFICATE_KEY_STORE_PASSWORD.toString()); + }; + + public void setClientCertificateKeyStoreType(String input) { + setValue(Keys.CLIENT_CERTIFICATE_KEY_STORE_TYPE.toString(), input); + } + + public String getClientCertificateKeyStoreType() { + return getValue(Keys.CLIENT_CERTIFICATE_KEY_STORE_TYPE.toString()); + }; + + public void setClientCertificateKeyStoreUrl(String input) { + setValue(Keys.CLIENT_CERTIFICATE_KEY_STORE_URL.toString(), input); + } + + public String getClientCertificateKeyStoreUrl() { + return getValue(Keys.CLIENT_CERTIFICATE_KEY_STORE_URL.toString()); + }; + + public void setClientInfoProvider(String input) { + setValue(Keys.CLIENT_INFO_PROVIDER.toString(), input); + } + + public String getClientInfoProvider() { + return getValue(Keys.CLIENT_INFO_PROVIDER.toString()); + }; + + public void setClobCharacterEncoding(String input) { + setValue(Keys.CLOB_CHARACTER_ENCODING.toString(), input); + } + + public String getClobCharacterEncoding() { + return getValue(Keys.CLOB_CHARACTER_ENCODING.toString()); + }; + + public void setClobberStreamingResults(String input) { + setValue(Keys.CLOBBER_STREAMING_RESULTS.toString(), input); + } + + public String getClobberStreamingResults() { + return getValue(Keys.CLOBBER_STREAMING_RESULTS.toString()); + }; + + public void setCompensateOnDuplicateKeyUpdateCounts(String input) { + setValue(Keys.COMPENSATE_ON_DUPLICATE_KEY_UPDATE_COUNTS.toString(), + input); + } + + public String getCompensateOnDuplicateKeyUpdateCounts() { + return getValue(Keys.COMPENSATE_ON_DUPLICATE_KEY_UPDATE_COUNTS + .toString()); + }; + + public void setConnectTimeout(String input) { + setValue(Keys.CONNECT_TIMEOUT.toString(), input); + } + + public String getConnectTimeout() { + return getValue(Keys.CONNECT_TIMEOUT.toString()); + }; + + public void setConnectionAttributes(String input) { + setValue(Keys.CONNECTION_ATTRIBUTES.toString(), input); + } + + public String getConnectionAttributes() { + return getValue(Keys.CONNECTION_ATTRIBUTES.toString()); + }; + + public void setConnectionCollation(String input) { + setValue(Keys.CONNECTION_COLLATION.toString(), input); + } + + public String getConnectionCollation() { + return getValue(Keys.CONNECTION_COLLATION.toString()); + }; + + public void setConnectionLifecycleInterceptors(String input) { + setValue(Keys.CONNECTION_LIFECYCLE_INTERCEPTORS.toString(), input); + } + + public String getConnectionLifecycleInterceptors() { + return getValue(Keys.CONNECTION_LIFECYCLE_INTERCEPTORS.toString()); + }; + + public void setContinueBatchOnError(String input) { + setValue(Keys.CONTINUE_BATCH_ON_ERROR.toString(), input); + } + + public String getContinueBatchOnError() { + return getValue(Keys.CONTINUE_BATCH_ON_ERROR.toString()); + }; + + public void setCreateDatabaseIfNotExist(String input) { + setValue(Keys.CREATE_DATABASE_IF_NOT_EXIST.toString(), input); + } + + public String getCreateDatabaseIfNotExist() { + return getValue(Keys.CREATE_DATABASE_IF_NOT_EXIST.toString()); + }; + + public void setDefaultAuthenticationPlugin(String input) { + setValue(Keys.DEFAULT_AUTHENTICATION_PLUGIN.toString(), input); + } + + public String getDefaultAuthenticationPlugin() { + return getValue(Keys.DEFAULT_AUTHENTICATION_PLUGIN.toString()); + }; + + public void setDefaultFetchSize(String input) { + setValue(Keys.DEFAULT_FETCH_SIZE.toString(), input); + } + + public String getDefaultFetchSize() { + return getValue(Keys.DEFAULT_FETCH_SIZE.toString()); + }; + + public void setDetectCustomCollations(String input) { + setValue(Keys.DETECT_CUSTOM_COLLATIONS.toString(), input); + } + + public String getDetectCustomCollations() { + return getValue(Keys.DETECT_CUSTOM_COLLATIONS.toString()); + }; + + public void setDisabledAuthenticationPlugins(String input) { + setValue(Keys.DISABLED_AUTHENTICATION_PLUGINS.toString(), input); + } + + public String getDisabledAuthenticationPlugins() { + return getValue(Keys.DISABLED_AUTHENTICATION_PLUGINS.toString()); + }; + + public void setDisconnectOnExpiredPasswords(String input) { + setValue(Keys.DISCONNECT_ON_EXPIRED_PASSWORDS.toString(), input); + } + + public String getDisconnectOnExpiredPasswords() { + return getValue(Keys.DISCONNECT_ON_EXPIRED_PASSWORDS.toString()); + }; + + public void setDontCheckOnDuplicateKeyUpdateInSQL(String input) { + setValue(Keys.DONT_CHECK_ON_DUPLICATE_KEY_UPDATE_IN_S_Q_L.toString(), + input); + } + + public String getDontCheckOnDuplicateKeyUpdateInSQL() { + return getValue(Keys.DONT_CHECK_ON_DUPLICATE_KEY_UPDATE_IN_S_Q_L + .toString()); + }; + + public void setDontTrackOpenResources(String input) { + setValue(Keys.DONT_TRACK_OPEN_RESOURCES.toString(), input); + } + + public String getDontTrackOpenResources() { + return getValue(Keys.DONT_TRACK_OPEN_RESOURCES.toString()); + }; + + public void setDumpMetadataOnColumnNotFound(String input) { + setValue(Keys.DUMP_METADATA_ON_COLUMN_NOT_FOUND.toString(), input); + } + + public String getDumpMetadataOnColumnNotFound() { + return getValue(Keys.DUMP_METADATA_ON_COLUMN_NOT_FOUND.toString()); + }; + + public void setDumpQueriesOnException(String input) { + setValue(Keys.DUMP_QUERIES_ON_EXCEPTION.toString(), input); + } + + public String getDumpQueriesOnException() { + return getValue(Keys.DUMP_QUERIES_ON_EXCEPTION.toString()); + }; + + public void setDynamicCalendars(String input) { + setValue(Keys.DYNAMIC_CALENDARS.toString(), input); + } + + public String getDynamicCalendars() { + return getValue(Keys.DYNAMIC_CALENDARS.toString()); + }; + + public void setElideSetAutoCommits(String input) { + setValue(Keys.ELIDE_SET_AUTO_COMMITS.toString(), input); + } + + public String getElideSetAutoCommits() { + return getValue(Keys.ELIDE_SET_AUTO_COMMITS.toString()); + }; + + public void setEmptyStringsConvertToZero(String input) { + setValue(Keys.EMPTY_STRINGS_CONVERT_TO_ZERO.toString(), input); + } + + public String getEmptyStringsConvertToZero() { + return getValue(Keys.EMPTY_STRINGS_CONVERT_TO_ZERO.toString()); + }; + + public void setEmulateLocators(String input) { + setValue(Keys.EMULATE_LOCATORS.toString(), input); + } + + public String getEmulateLocators() { + return getValue(Keys.EMULATE_LOCATORS.toString()); + }; + + public void setEmulateUnsupportedPstmts(String input) { + setValue(Keys.EMULATE_UNSUPPORTED_PSTMTS.toString(), input); + } + + public String getEmulateUnsupportedPstmts() { + return getValue(Keys.EMULATE_UNSUPPORTED_PSTMTS.toString()); + }; + + public void setEnablePacketDebug(String input) { + setValue(Keys.ENABLE_PACKET_DEBUG.toString(), input); + } + + public String getEnablePacketDebug() { + return getValue(Keys.ENABLE_PACKET_DEBUG.toString()); + }; + + public void setEnableQueryTimeouts(String input) { + setValue(Keys.ENABLE_QUERY_TIMEOUTS.toString(), input); + } + + public String getEnableQueryTimeouts() { + return getValue(Keys.ENABLE_QUERY_TIMEOUTS.toString()); + }; + + public void setExceptionInterceptors(String input) { + setValue(Keys.EXCEPTION_INTERCEPTORS.toString(), input); + } + + public String getExceptionInterceptors() { + return getValue(Keys.EXCEPTION_INTERCEPTORS.toString()); + }; + + public void setExplainSlowQueries(String input) { + setValue(Keys.EXPLAIN_SLOW_QUERIES.toString(), input); + } + + public String getExplainSlowQueries() { + return getValue(Keys.EXPLAIN_SLOW_QUERIES.toString()); + }; + + public void setFailOverReadOnly(String input) { + setValue(Keys.FAIL_OVER_READ_ONLY.toString(), input); + } + + public String getFailOverReadOnly() { + return getValue(Keys.FAIL_OVER_READ_ONLY.toString()); + }; + + public void setFunctionsNeverReturnBlobs(String input) { + setValue(Keys.FUNCTIONS_NEVER_RETURN_BLOBS.toString(), input); + } + + public String getFunctionsNeverReturnBlobs() { + return getValue(Keys.FUNCTIONS_NEVER_RETURN_BLOBS.toString()); + }; + + public void setGatherPerfMetrics(String input) { + setValue(Keys.GATHER_PERF_METRICS.toString(), input); + } + + public String getGatherPerfMetrics() { + return getValue(Keys.GATHER_PERF_METRICS.toString()); + }; + + public void setGenerateSimpleParameterMetadata(String input) { + setValue(Keys.GENERATE_SIMPLE_PARAMETER_METADATA.toString(), input); + } + + public String getGenerateSimpleParameterMetadata() { + return getValue(Keys.GENERATE_SIMPLE_PARAMETER_METADATA.toString()); + }; + + public void setGetProceduresReturnsFunctions(String input) { + setValue(Keys.GET_PROCEDURES_RETURNS_FUNCTIONS.toString(), input); + } + + public String getGetProceduresReturnsFunctions() { + return getValue(Keys.GET_PROCEDURES_RETURNS_FUNCTIONS.toString()); + }; + + public void setHoldResultsOpenOverStatementClose(String input) { + setValue(Keys.HOLD_RESULTS_OPEN_OVER_STATEMENT_CLOSE.toString(), input); + } + + public String getHoldResultsOpenOverStatementClose() { + return getValue(Keys.HOLD_RESULTS_OPEN_OVER_STATEMENT_CLOSE.toString()); + }; + + public void setIgnoreNonTxTables(String input) { + setValue(Keys.IGNORE_NON_TX_TABLES.toString(), input); + } + + public String getIgnoreNonTxTables() { + return getValue(Keys.IGNORE_NON_TX_TABLES.toString()); + }; + + public void setIncludeInnodbStatusInDeadlockExceptions(String input) { + setValue(Keys.INCLUDE_INNODB_STATUS_IN_DEADLOCK_EXCEPTIONS.toString(), + input); + } + + public String getIncludeInnodbStatusInDeadlockExceptions() { + return getValue(Keys.INCLUDE_INNODB_STATUS_IN_DEADLOCK_EXCEPTIONS + .toString()); + }; + + public void setIncludeThreadDumpInDeadlockExceptions(String input) { + setValue(Keys.INCLUDE_THREAD_DUMP_IN_DEADLOCK_EXCEPTIONS.toString(), + input); + } + + public String getIncludeThreadDumpInDeadlockExceptions() { + return getValue(Keys.INCLUDE_THREAD_DUMP_IN_DEADLOCK_EXCEPTIONS + .toString()); + }; + + public void setIncludeThreadNamesAsStatementComment(String input) { + setValue(Keys.INCLUDE_THREAD_NAMES_AS_STATEMENT_COMMENT.toString(), + input); + } + + public String getIncludeThreadNamesAsStatementComment() { + return getValue(Keys.INCLUDE_THREAD_NAMES_AS_STATEMENT_COMMENT + .toString()); + }; + + public void setInitialTimeout(String input) { + setValue(Keys.INITIAL_TIMEOUT.toString(), input); + } + + public String getInitialTimeout() { + return getValue(Keys.INITIAL_TIMEOUT.toString()); + }; + + public void setInteractiveClient(String input) { + setValue(Keys.INTERACTIVE_CLIENT.toString(), input); + } + + public String getInteractiveClient() { + return getValue(Keys.INTERACTIVE_CLIENT.toString()); + }; + + public void setJdbcCompliantTruncation(String input) { + setValue(Keys.JDBC_COMPLIANT_TRUNCATION.toString(), input); + } + + public String getJdbcCompliantTruncation() { + return getValue(Keys.JDBC_COMPLIANT_TRUNCATION.toString()); + }; + + public void setLargeRowSizeThreshold(String input) { + setValue(Keys.LARGE_ROW_SIZE_THRESHOLD.toString(), input); + } + + public String getLargeRowSizeThreshold() { + return getValue(Keys.LARGE_ROW_SIZE_THRESHOLD.toString()); + }; + + public void setLoadBalanceAutoCommitStatementRegex(String input) { + setValue(Keys.LOAD_BALANCE_AUTO_COMMIT_STATEMENT_REGEX.toString(), + input); + } + + public String getLoadBalanceAutoCommitStatementRegex() { + return getValue(Keys.LOAD_BALANCE_AUTO_COMMIT_STATEMENT_REGEX + .toString()); + }; + + public void setLoadBalanceAutoCommitStatementThreshold(String input) { + setValue(Keys.LOAD_BALANCE_AUTO_COMMIT_STATEMENT_THRESHOLD.toString(), + input); + } + + public String getLoadBalanceAutoCommitStatementThreshold() { + return getValue(Keys.LOAD_BALANCE_AUTO_COMMIT_STATEMENT_THRESHOLD + .toString()); + }; + + public void setLoadBalanceBlacklistTimeout(String input) { + setValue(Keys.LOAD_BALANCE_BLACKLIST_TIMEOUT.toString(), input); + } + + public String getLoadBalanceBlacklistTimeout() { + return getValue(Keys.LOAD_BALANCE_BLACKLIST_TIMEOUT.toString()); + }; + + public void setLoadBalanceConnectionGroup(String input) { + setValue(Keys.LOAD_BALANCE_CONNECTION_GROUP.toString(), input); + } + + public String getLoadBalanceConnectionGroup() { + return getValue(Keys.LOAD_BALANCE_CONNECTION_GROUP.toString()); + }; + + public void setLoadBalanceEnableJMX(String input) { + setValue(Keys.LOAD_BALANCE_ENABLE_J_M_X.toString(), input); + } + + public String getLoadBalanceEnableJMX() { + return getValue(Keys.LOAD_BALANCE_ENABLE_J_M_X.toString()); + }; + + public void setLoadBalanceExceptionChecker(String input) { + setValue(Keys.LOAD_BALANCE_EXCEPTION_CHECKER.toString(), input); + } + + public String getLoadBalanceExceptionChecker() { + return getValue(Keys.LOAD_BALANCE_EXCEPTION_CHECKER.toString()); + }; + + public void setLoadBalancePingTimeout(String input) { + setValue(Keys.LOAD_BALANCE_PING_TIMEOUT.toString(), input); + } + + public String getLoadBalancePingTimeout() { + return getValue(Keys.LOAD_BALANCE_PING_TIMEOUT.toString()); + }; + + public void setLoadBalanceSQLExceptionSubclassFailover(String input) { + setValue( + Keys.LOAD_BALANCE_S_Q_L_EXCEPTION_SUBCLASS_FAILOVER.toString(), + input); + } + + public String getLoadBalanceSQLExceptionSubclassFailover() { + return getValue(Keys.LOAD_BALANCE_S_Q_L_EXCEPTION_SUBCLASS_FAILOVER + .toString()); + }; + + public void setLoadBalanceSQLStateFailover(String input) { + setValue(Keys.LOAD_BALANCE_S_Q_L_STATE_FAILOVER.toString(), input); + } + + public String getLoadBalanceSQLStateFailover() { + return getValue(Keys.LOAD_BALANCE_S_Q_L_STATE_FAILOVER.toString()); + }; + + public void setLoadBalanceStrategy(String input) { + setValue(Keys.LOAD_BALANCE_STRATEGY.toString(), input); + } + + public String getLoadBalanceStrategy() { + return getValue(Keys.LOAD_BALANCE_STRATEGY.toString()); + }; + + public void setLoadBalanceValidateConnectionOnSwapServer(String input) { + setValue( + Keys.LOAD_BALANCE_VALIDATE_CONNECTION_ON_SWAP_SERVER.toString(), + input); + } + + public String getLoadBalanceValidateConnectionOnSwapServer() { + return getValue(Keys.LOAD_BALANCE_VALIDATE_CONNECTION_ON_SWAP_SERVER + .toString()); + }; + + public void setLocalSocketAddress(String input) { + setValue(Keys.LOCAL_SOCKET_ADDRESS.toString(), input); + } + + public String getLocalSocketAddress() { + return getValue(Keys.LOCAL_SOCKET_ADDRESS.toString()); + }; + + public void setLocatorFetchBufferSize(String input) { + setValue(Keys.LOCATOR_FETCH_BUFFER_SIZE.toString(), input); + } + + public String getLocatorFetchBufferSize() { + return getValue(Keys.LOCATOR_FETCH_BUFFER_SIZE.toString()); + }; + + public void setLogSlowQueries(String input) { + setValue(Keys.LOG_SLOW_QUERIES.toString(), input); + } + + public String getLogSlowQueries() { + return getValue(Keys.LOG_SLOW_QUERIES.toString()); + }; + + public void setLogXaCommands(String input) { + setValue(Keys.LOG_XA_COMMANDS.toString(), input); + } + + public String getLogXaCommands() { + return getValue(Keys.LOG_XA_COMMANDS.toString()); + }; + + public void setLogger(String input) { + setValue(Keys.LOGGER.toString(), input); + } + + public String getLogger() { + return getValue(Keys.LOGGER.toString()); + }; + + public void setMaintainTimeStats(String input) { + setValue(Keys.MAINTAIN_TIME_STATS.toString(), input); + } + + public String getMaintainTimeStats() { + return getValue(Keys.MAINTAIN_TIME_STATS.toString()); + }; + + public void setMaxAllowedPacket(String input) { + setValue(Keys.MAX_ALLOWED_PACKET.toString(), input); + } + + public String getMaxAllowedPacket() { + return getValue(Keys.MAX_ALLOWED_PACKET.toString()); + }; + + public void setMaxQuerySizeToLog(String input) { + setValue(Keys.MAX_QUERY_SIZE_TO_LOG.toString(), input); + } + + public String getMaxQuerySizeToLog() { + return getValue(Keys.MAX_QUERY_SIZE_TO_LOG.toString()); + }; + + public void setMaxReconnects(String input) { + setValue(Keys.MAX_RECONNECTS.toString(), input); + } + + public String getMaxReconnects() { + return getValue(Keys.MAX_RECONNECTS.toString()); + }; + + public void setMaxRows(String input) { + setValue(Keys.MAX_ROWS.toString(), input); + } + + public String getMaxRows() { + return getValue(Keys.MAX_ROWS.toString()); + }; + + public void setMetadataCacheSize(String input) { + setValue(Keys.METADATA_CACHE_SIZE.toString(), input); + } + + public String getMetadataCacheSize() { + return getValue(Keys.METADATA_CACHE_SIZE.toString()); + }; + + public void setNetTimeoutForStreamingResults(String input) { + setValue(Keys.NET_TIMEOUT_FOR_STREAMING_RESULTS.toString(), input); + } + + public String getNetTimeoutForStreamingResults() { + return getValue(Keys.NET_TIMEOUT_FOR_STREAMING_RESULTS.toString()); + }; + + public void setNoAccessToProcedureBodies(String input) { + setValue(Keys.NO_ACCESS_TO_PROCEDURE_BODIES.toString(), input); + } + + public String getNoAccessToProcedureBodies() { + return getValue(Keys.NO_ACCESS_TO_PROCEDURE_BODIES.toString()); + }; + + public void setNoDatetimeStringSync(String input) { + setValue(Keys.NO_DATETIME_STRING_SYNC.toString(), input); + } + + public String getNoDatetimeStringSync() { + return getValue(Keys.NO_DATETIME_STRING_SYNC.toString()); + }; + + public void setNoTimezoneConversionForDateType(String input) { + setValue(Keys.NO_TIMEZONE_CONVERSION_FOR_DATE_TYPE.toString(), input); + } + + public String getNoTimezoneConversionForDateType() { + return getValue(Keys.NO_TIMEZONE_CONVERSION_FOR_DATE_TYPE.toString()); + }; + + public void setNoTimezoneConversionForTimeType(String input) { + setValue(Keys.NO_TIMEZONE_CONVERSION_FOR_TIME_TYPE.toString(), input); + } + + public String getNoTimezoneConversionForTimeType() { + return getValue(Keys.NO_TIMEZONE_CONVERSION_FOR_TIME_TYPE.toString()); + }; + + public void setNullCatalogMeansCurrent(String input) { + setValue(Keys.NULL_CATALOG_MEANS_CURRENT.toString(), input); + } + + public String getNullCatalogMeansCurrent() { + return getValue(Keys.NULL_CATALOG_MEANS_CURRENT.toString()); + }; + + public void setNullNamePatternMatchesAll(String input) { + setValue(Keys.NULL_NAME_PATTERN_MATCHES_ALL.toString(), input); + } + + public String getNullNamePatternMatchesAll() { + return getValue(Keys.NULL_NAME_PATTERN_MATCHES_ALL.toString()); + }; + + public void setOverrideSupportsIntegrityEnhancementFacility(String input) { + setValue( + Keys.OVERRIDE_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY + .toString(), + input); + } + + public String getOverrideSupportsIntegrityEnhancementFacility() { + return getValue(Keys.OVERRIDE_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY + .toString()); + }; + + public void setPacketDebugBufferSize(String input) { + setValue(Keys.PACKET_DEBUG_BUFFER_SIZE.toString(), input); + } + + public String getPacketDebugBufferSize() { + return getValue(Keys.PACKET_DEBUG_BUFFER_SIZE.toString()); + }; + + public void setPadCharsWithSpace(String input) { + setValue(Keys.PAD_CHARS_WITH_SPACE.toString(), input); + } + + public String getPadCharsWithSpace() { + return getValue(Keys.PAD_CHARS_WITH_SPACE.toString()); + }; + + public void setParanoid(String input) { + setValue(Keys.PARANOID.toString(), input); + } + + public String getParanoid() { + return getValue(Keys.PARANOID.toString()); + }; + + public void setParseInfoCacheFactory(String input) { + setValue(Keys.PARSE_INFO_CACHE_FACTORY.toString(), input); + } + + public String getParseInfoCacheFactory() { + return getValue(Keys.PARSE_INFO_CACHE_FACTORY.toString()); + }; + + public void setPassword(String input) { + setValue(Keys.PASSWORD.toString(), input); + } + + public String getPassword() { + return getValue(Keys.PASSWORD.toString()); + }; + + public void setPasswordCharacterEncoding(String input) { + setValue(Keys.PASSWORD_CHARACTER_ENCODING.toString(), input); + } + + public String getPasswordCharacterEncoding() { + return getValue(Keys.PASSWORD_CHARACTER_ENCODING.toString()); + }; + + public void setPedantic(String input) { + setValue(Keys.PEDANTIC.toString(), input); + } + + public String getPedantic() { + return getValue(Keys.PEDANTIC.toString()); + }; + + public void setPinGlobalTxToPhysicalConnection(String input) { + setValue(Keys.PIN_GLOBAL_TX_TO_PHYSICAL_CONNECTION.toString(), input); + } + + public String getPinGlobalTxToPhysicalConnection() { + return getValue(Keys.PIN_GLOBAL_TX_TO_PHYSICAL_CONNECTION.toString()); + }; + + public void setPopulateInsertRowWithDefaultValues(String input) { + setValue(Keys.POPULATE_INSERT_ROW_WITH_DEFAULT_VALUES.toString(), input); + } + + public String getPopulateInsertRowWithDefaultValues() { + return getValue(Keys.POPULATE_INSERT_ROW_WITH_DEFAULT_VALUES.toString()); + }; + + public void setPrepStmtCacheSize(String input) { + setValue(Keys.PREP_STMT_CACHE_SIZE.toString(), input); + } + + public String getPrepStmtCacheSize() { + return getValue(Keys.PREP_STMT_CACHE_SIZE.toString()); + }; + + public void setPrepStmtCacheSqlLimit(String input) { + setValue(Keys.PREP_STMT_CACHE_SQL_LIMIT.toString(), input); + } + + public String getPrepStmtCacheSqlLimit() { + return getValue(Keys.PREP_STMT_CACHE_SQL_LIMIT.toString()); + }; + + public void setProcessEscapeCodesForPrepStmts(String input) { + setValue(Keys.PROCESS_ESCAPE_CODES_FOR_PREP_STMTS.toString(), input); + } + + public String getProcessEscapeCodesForPrepStmts() { + return getValue(Keys.PROCESS_ESCAPE_CODES_FOR_PREP_STMTS.toString()); + }; + + public void setProfileSQL(String input) { + setValue(Keys.PROFILE_S_Q_L.toString(), input); + } + + public String getProfileSQL() { + return getValue(Keys.PROFILE_S_Q_L.toString()); + }; + + public void setProfileSql(String input) { + setValue(Keys.PROFILE_SQL.toString(), input); + } + + public String getProfileSql() { + return getValue(Keys.PROFILE_SQL.toString()); + }; + + public void setProfilerEventHandler(String input) { + setValue(Keys.PROFILER_EVENT_HANDLER.toString(), input); + } + + public String getProfilerEventHandler() { + return getValue(Keys.PROFILER_EVENT_HANDLER.toString()); + }; + + public void setPropertiesTransform(String input) { + setValue(Keys.PROPERTIES_TRANSFORM.toString(), input); + } + + public String getPropertiesTransform() { + return getValue(Keys.PROPERTIES_TRANSFORM.toString()); + }; + + public void setQueriesBeforeRetryMaster(String input) { + setValue(Keys.QUERIES_BEFORE_RETRY_MASTER.toString(), input); + } + + public String getQueriesBeforeRetryMaster() { + return getValue(Keys.QUERIES_BEFORE_RETRY_MASTER.toString()); + }; + + public void setQueryTimeoutKillsConnection(String input) { + setValue(Keys.QUERY_TIMEOUT_KILLS_CONNECTION.toString(), input); + } + + public String getQueryTimeoutKillsConnection() { + return getValue(Keys.QUERY_TIMEOUT_KILLS_CONNECTION.toString()); + }; + + public void setReadOnlyPropagatesToServer(String input) { + setValue(Keys.READ_ONLY_PROPAGATES_TO_SERVER.toString(), input); + } + + public String getReadOnlyPropagatesToServer() { + return getValue(Keys.READ_ONLY_PROPAGATES_TO_SERVER.toString()); + }; + + public void setReconnectAtTxEnd(String input) { + setValue(Keys.RECONNECT_AT_TX_END.toString(), input); + } + + public String getReconnectAtTxEnd() { + return getValue(Keys.RECONNECT_AT_TX_END.toString()); + }; + + public void setRelaxAutoCommit(String input) { + setValue(Keys.RELAX_AUTO_COMMIT.toString(), input); + } + + public String getRelaxAutoCommit() { + return getValue(Keys.RELAX_AUTO_COMMIT.toString()); + }; + + public void setReplicationEnableJMX(String input) { + setValue(Keys.REPLICATION_ENABLE_J_M_X.toString(), input); + } + + public String getReplicationEnableJMX() { + return getValue(Keys.REPLICATION_ENABLE_J_M_X.toString()); + }; + + public void setReportMetricsIntervalMillis(String input) { + setValue(Keys.REPORT_METRICS_INTERVAL_MILLIS.toString(), input); + } + + public String getReportMetricsIntervalMillis() { + return getValue(Keys.REPORT_METRICS_INTERVAL_MILLIS.toString()); + }; + + public void setRequireSSL(String input) { + setValue(Keys.REQUIRE_S_S_L.toString(), input); + } + + public String getRequireSSL() { + return getValue(Keys.REQUIRE_S_S_L.toString()); + }; + + public void setResourceId(String input) { + setValue(Keys.RESOURCE_ID.toString(), input); + } + + public String getResourceId() { + return getValue(Keys.RESOURCE_ID.toString()); + }; + + public void setResultSetSizeThreshold(String input) { + setValue(Keys.RESULT_SET_SIZE_THRESHOLD.toString(), input); + } + + public String getResultSetSizeThreshold() { + return getValue(Keys.RESULT_SET_SIZE_THRESHOLD.toString()); + }; + + public void setRetainStatementAfterResultSetClose(String input) { + setValue(Keys.RETAIN_STATEMENT_AFTER_RESULT_SET_CLOSE.toString(), input); + } + + public String getRetainStatementAfterResultSetClose() { + return getValue(Keys.RETAIN_STATEMENT_AFTER_RESULT_SET_CLOSE.toString()); + }; + + public void setRetriesAllDown(String input) { + setValue(Keys.RETRIES_ALL_DOWN.toString(), input); + } + + public String getRetriesAllDown() { + return getValue(Keys.RETRIES_ALL_DOWN.toString()); + }; + + public void setRewriteBatchedStatements(String input) { + setValue(Keys.REWRITE_BATCHED_STATEMENTS.toString(), input); + } + + public String getRewriteBatchedStatements() { + return getValue(Keys.REWRITE_BATCHED_STATEMENTS.toString()); + }; + + public void setRollbackOnPooledClose(String input) { + setValue(Keys.ROLLBACK_ON_POOLED_CLOSE.toString(), input); + } + + public String getRollbackOnPooledClose() { + return getValue(Keys.ROLLBACK_ON_POOLED_CLOSE.toString()); + }; + + public void setRoundRobinLoadBalance(String input) { + setValue(Keys.ROUND_ROBIN_LOAD_BALANCE.toString(), input); + } + + public String getRoundRobinLoadBalance() { + return getValue(Keys.ROUND_ROBIN_LOAD_BALANCE.toString()); + }; + + public void setRunningCTS13(String input) { + setValue(Keys.RUNNING_C_T_S13.toString(), input); + } + + public String getRunningCTS13() { + return getValue(Keys.RUNNING_C_T_S13.toString()); + }; + + public void setSecondsBeforeRetryMaster(String input) { + setValue(Keys.SECONDS_BEFORE_RETRY_MASTER.toString(), input); + } + + public String getSecondsBeforeRetryMaster() { + return getValue(Keys.SECONDS_BEFORE_RETRY_MASTER.toString()); + }; + + public void setSelfDestructOnPingMaxOperations(String input) { + setValue(Keys.SELF_DESTRUCT_ON_PING_MAX_OPERATIONS.toString(), input); + } + + public String getSelfDestructOnPingMaxOperations() { + return getValue(Keys.SELF_DESTRUCT_ON_PING_MAX_OPERATIONS.toString()); + }; + + public void setSelfDestructOnPingSecondsLifetime(String input) { + setValue(Keys.SELF_DESTRUCT_ON_PING_SECONDS_LIFETIME.toString(), input); + } + + public String getSelfDestructOnPingSecondsLifetime() { + return getValue(Keys.SELF_DESTRUCT_ON_PING_SECONDS_LIFETIME.toString()); + }; + + public void setServerConfigCacheFactory(String input) { + setValue(Keys.SERVER_CONFIG_CACHE_FACTORY.toString(), input); + } + + public String getServerConfigCacheFactory() { + return getValue(Keys.SERVER_CONFIG_CACHE_FACTORY.toString()); + }; + + public void setServerRSAPublicKeyFile(String input) { + setValue(Keys.SERVER_R_S_A_PUBLIC_KEY_FILE.toString(), input); + } + + public String getServerRSAPublicKeyFile() { + return getValue(Keys.SERVER_R_S_A_PUBLIC_KEY_FILE.toString()); + }; + + public void setServerTimezone(String input) { + setValue(Keys.SERVER_TIMEZONE.toString(), input); + } + + public String getServerTimezone() { + return getValue(Keys.SERVER_TIMEZONE.toString()); + }; + + public void setSessionVariables(String input) { + setValue(Keys.SESSION_VARIABLES.toString(), input); + } + + public String getSessionVariables() { + return getValue(Keys.SESSION_VARIABLES.toString()); + }; + + public void setSlowQueryThresholdMillis(String input) { + setValue(Keys.SLOW_QUERY_THRESHOLD_MILLIS.toString(), input); + } + + public String getSlowQueryThresholdMillis() { + return getValue(Keys.SLOW_QUERY_THRESHOLD_MILLIS.toString()); + }; + + public void setSlowQueryThresholdNanos(String input) { + setValue(Keys.SLOW_QUERY_THRESHOLD_NANOS.toString(), input); + } + + public String getSlowQueryThresholdNanos() { + return getValue(Keys.SLOW_QUERY_THRESHOLD_NANOS.toString()); + }; + + public void setSocketFactory(String input) { + setValue(Keys.SOCKET_FACTORY.toString(), input); + } + + public String getSocketFactory() { + return getValue(Keys.SOCKET_FACTORY.toString()); + }; + + public void setSocketTimeout(String input) { + setValue(Keys.SOCKET_TIMEOUT.toString(), input); + } + + public String getSocketTimeout() { + return getValue(Keys.SOCKET_TIMEOUT.toString()); + }; + + public void setSocksProxyHost(String input) { + setValue(Keys.SOCKS_PROXY_HOST.toString(), input); + } + + public String getSocksProxyHost() { + return getValue(Keys.SOCKS_PROXY_HOST.toString()); + }; + + public void setSocksProxyPort(String input) { + setValue(Keys.SOCKS_PROXY_PORT.toString(), input); + } + + public String getSocksProxyPort() { + return getValue(Keys.SOCKS_PROXY_PORT.toString()); + }; + + public void setStatementInterceptors(String input) { + setValue(Keys.STATEMENT_INTERCEPTORS.toString(), input); + } + + public String getStatementInterceptors() { + return getValue(Keys.STATEMENT_INTERCEPTORS.toString()); + }; + + public void setStrictFloatingPoint(String input) { + setValue(Keys.STRICT_FLOATING_POINT.toString(), input); + } + + public String getStrictFloatingPoint() { + return getValue(Keys.STRICT_FLOATING_POINT.toString()); + }; + + public void setStrictUpdates(String input) { + setValue(Keys.STRICT_UPDATES.toString(), input); + } + + public String getStrictUpdates() { + return getValue(Keys.STRICT_UPDATES.toString()); + }; + + public void setTcpKeepAlive(String input) { + setValue(Keys.TCP_KEEP_ALIVE.toString(), input); + } + + public String getTcpKeepAlive() { + return getValue(Keys.TCP_KEEP_ALIVE.toString()); + }; + + public void setTcpNoDelay(String input) { + setValue(Keys.TCP_NO_DELAY.toString(), input); + } + + public String getTcpNoDelay() { + return getValue(Keys.TCP_NO_DELAY.toString()); + }; + + public void setTcpRcvBuf(String input) { + setValue(Keys.TCP_RCV_BUF.toString(), input); + } + + public String getTcpRcvBuf() { + return getValue(Keys.TCP_RCV_BUF.toString()); + }; + + public void setTcpSndBuf(String input) { + setValue(Keys.TCP_SND_BUF.toString(), input); + } + + public String getTcpSndBuf() { + return getValue(Keys.TCP_SND_BUF.toString()); + }; + + public void setTcpTrafficClass(String input) { + setValue(Keys.TCP_TRAFFIC_CLASS.toString(), input); + } + + public String getTcpTrafficClass() { + return getValue(Keys.TCP_TRAFFIC_CLASS.toString()); + }; + + public void setTinyInt1isBit(String input) { + setValue(Keys.TINY_INT1IS_BIT.toString(), input); + } + + public String getTinyInt1isBit() { + return getValue(Keys.TINY_INT1IS_BIT.toString()); + }; + + public void setTraceProtocol(String input) { + setValue(Keys.TRACE_PROTOCOL.toString(), input); + } + + public String getTraceProtocol() { + return getValue(Keys.TRACE_PROTOCOL.toString()); + }; + + public void setTransformedBitIsBoolean(String input) { + setValue(Keys.TRANSFORMED_BIT_IS_BOOLEAN.toString(), input); + } + + public String getTransformedBitIsBoolean() { + return getValue(Keys.TRANSFORMED_BIT_IS_BOOLEAN.toString()); + }; + + public void setTreatUtilDateAsTimestamp(String input) { + setValue(Keys.TREAT_UTIL_DATE_AS_TIMESTAMP.toString(), input); + } + + public String getTreatUtilDateAsTimestamp() { + return getValue(Keys.TREAT_UTIL_DATE_AS_TIMESTAMP.toString()); + }; + + public void setTrustCertificateKeyStorePassword(String input) { + setValue(Keys.TRUST_CERTIFICATE_KEY_STORE_PASSWORD.toString(), input); + } + + public String getTrustCertificateKeyStorePassword() { + return getValue(Keys.TRUST_CERTIFICATE_KEY_STORE_PASSWORD.toString()); + }; + + public void setTrustCertificateKeyStoreType(String input) { + setValue(Keys.TRUST_CERTIFICATE_KEY_STORE_TYPE.toString(), input); + } + + public String getTrustCertificateKeyStoreType() { + return getValue(Keys.TRUST_CERTIFICATE_KEY_STORE_TYPE.toString()); + }; + + public void setTrustCertificateKeyStoreUrl(String input) { + setValue(Keys.TRUST_CERTIFICATE_KEY_STORE_URL.toString(), input); + } + + public String getTrustCertificateKeyStoreUrl() { + return getValue(Keys.TRUST_CERTIFICATE_KEY_STORE_URL.toString()); + }; + + public void setUltraDevHack(String input) { + setValue(Keys.ULTRA_DEV_HACK.toString(), input); + } + + public String getUltraDevHack() { + return getValue(Keys.ULTRA_DEV_HACK.toString()); + }; + + public void setUseAffectedRows(String input) { + setValue(Keys.USE_AFFECTED_ROWS.toString(), input); + } + + public String getUseAffectedRows() { + return getValue(Keys.USE_AFFECTED_ROWS.toString()); + }; + + public void setUseBlobToStoreUTF8OutsideBMP(String input) { + setValue(Keys.USE_BLOB_TO_STORE_U_T_F8_OUTSIDE_B_M_P.toString(), input); + } + + public String getUseBlobToStoreUTF8OutsideBMP() { + return getValue(Keys.USE_BLOB_TO_STORE_U_T_F8_OUTSIDE_B_M_P.toString()); + }; + + public void setUseColumnNamesInFindColumn(String input) { + setValue(Keys.USE_COLUMN_NAMES_IN_FIND_COLUMN.toString(), input); + } + + public String getUseColumnNamesInFindColumn() { + return getValue(Keys.USE_COLUMN_NAMES_IN_FIND_COLUMN.toString()); + }; + + public void setUseCompression(String input) { + setValue(Keys.USE_COMPRESSION.toString(), input); + } + + public String getUseCompression() { + return getValue(Keys.USE_COMPRESSION.toString()); + }; + + public void setUseConfigs(String input) { + setValue(Keys.USE_CONFIGS.toString(), input); + } + + public String getUseConfigs() { + return getValue(Keys.USE_CONFIGS.toString()); + }; + + public void setUseCursorFetch(String input) { + setValue(Keys.USE_CURSOR_FETCH.toString(), input); + } + + public String getUseCursorFetch() { + return getValue(Keys.USE_CURSOR_FETCH.toString()); + }; + + public void setUseDirectRowUnpack(String input) { + setValue(Keys.USE_DIRECT_ROW_UNPACK.toString(), input); + } + + public String getUseDirectRowUnpack() { + return getValue(Keys.USE_DIRECT_ROW_UNPACK.toString()); + }; + + public void setUseDynamicCharsetInfo(String input) { + setValue(Keys.USE_DYNAMIC_CHARSET_INFO.toString(), input); + } + + public String getUseDynamicCharsetInfo() { + return getValue(Keys.USE_DYNAMIC_CHARSET_INFO.toString()); + }; + + public void setUseFastDateParsing(String input) { + setValue(Keys.USE_FAST_DATE_PARSING.toString(), input); + } + + public String getUseFastDateParsing() { + return getValue(Keys.USE_FAST_DATE_PARSING.toString()); + }; + + public void setUseFastIntParsing(String input) { + setValue(Keys.USE_FAST_INT_PARSING.toString(), input); + } + + public String getUseFastIntParsing() { + return getValue(Keys.USE_FAST_INT_PARSING.toString()); + }; + + public void setUseGmtMillisForDatetimes(String input) { + setValue(Keys.USE_GMT_MILLIS_FOR_DATETIMES.toString(), input); + } + + public String getUseGmtMillisForDatetimes() { + return getValue(Keys.USE_GMT_MILLIS_FOR_DATETIMES.toString()); + }; + + public void setUseHostsInPrivileges(String input) { + setValue(Keys.USE_HOSTS_IN_PRIVILEGES.toString(), input); + } + + public String getUseHostsInPrivileges() { + return getValue(Keys.USE_HOSTS_IN_PRIVILEGES.toString()); + }; + + public void setUseInformationSchema(String input) { + setValue(Keys.USE_INFORMATION_SCHEMA.toString(), input); + } + + public String getUseInformationSchema() { + return getValue(Keys.USE_INFORMATION_SCHEMA.toString()); + }; + + public void setUseJDBCCompliantTimezoneShift(String input) { + setValue(Keys.USE_J_D_B_C_COMPLIANT_TIMEZONE_SHIFT.toString(), input); + } + + public String getUseJDBCCompliantTimezoneShift() { + return getValue(Keys.USE_J_D_B_C_COMPLIANT_TIMEZONE_SHIFT.toString()); + }; + + public void setUseJvmCharsetConverters(String input) { + setValue(Keys.USE_JVM_CHARSET_CONVERTERS.toString(), input); + } + + public String getUseJvmCharsetConverters() { + return getValue(Keys.USE_JVM_CHARSET_CONVERTERS.toString()); + }; + + public void setUseLegacyDatetimeCode(String input) { + setValue(Keys.USE_LEGACY_DATETIME_CODE.toString(), input); + } + + public String getUseLegacyDatetimeCode() { + return getValue(Keys.USE_LEGACY_DATETIME_CODE.toString()); + }; + + public void setUseLocalSessionState(String input) { + setValue(Keys.USE_LOCAL_SESSION_STATE.toString(), input); + } + + public String getUseLocalSessionState() { + return getValue(Keys.USE_LOCAL_SESSION_STATE.toString()); + }; + + public void setUseLocalTransactionState(String input) { + setValue(Keys.USE_LOCAL_TRANSACTION_STATE.toString(), input); + } + + public String getUseLocalTransactionState() { + return getValue(Keys.USE_LOCAL_TRANSACTION_STATE.toString()); + }; + + public void setUseNanosForElapsedTime(String input) { + setValue(Keys.USE_NANOS_FOR_ELAPSED_TIME.toString(), input); + } + + public String getUseNanosForElapsedTime() { + return getValue(Keys.USE_NANOS_FOR_ELAPSED_TIME.toString()); + }; + + public void setUseOldAliasMetadataBehavior(String input) { + setValue(Keys.USE_OLD_ALIAS_METADATA_BEHAVIOR.toString(), input); + } + + public String getUseOldAliasMetadataBehavior() { + return getValue(Keys.USE_OLD_ALIAS_METADATA_BEHAVIOR.toString()); + }; + + public void setUseOldUTF8Behavior(String input) { + setValue(Keys.USE_OLD_U_T_F8_BEHAVIOR.toString(), input); + } + + public String getUseOldUTF8Behavior() { + return getValue(Keys.USE_OLD_U_T_F8_BEHAVIOR.toString()); + }; + + public void setUseOnlyServerErrorMessages(String input) { + setValue(Keys.USE_ONLY_SERVER_ERROR_MESSAGES.toString(), input); + } + + public String getUseOnlyServerErrorMessages() { + return getValue(Keys.USE_ONLY_SERVER_ERROR_MESSAGES.toString()); + }; + + public void setUseReadAheadInput(String input) { + setValue(Keys.USE_READ_AHEAD_INPUT.toString(), input); + } + + public String getUseReadAheadInput() { + return getValue(Keys.USE_READ_AHEAD_INPUT.toString()); + }; + + public void setUseSSL(String input) { + setValue(Keys.USE_S_S_L.toString(), input); + } + + public String getUseSSL() { + return getValue(Keys.USE_S_S_L.toString()); + }; + + public void setUseSSPSCompatibleTimezoneShift(String input) { + setValue(Keys.USE_S_S_P_S_COMPATIBLE_TIMEZONE_SHIFT.toString(), input); + } + + public String getUseSSPSCompatibleTimezoneShift() { + return getValue(Keys.USE_S_S_P_S_COMPATIBLE_TIMEZONE_SHIFT.toString()); + }; + + public void setUseServerPrepStmts(String input) { + setValue(Keys.USE_SERVER_PREP_STMTS.toString(), input); + } + + public String getUseServerPrepStmts() { + return getValue(Keys.USE_SERVER_PREP_STMTS.toString()); + }; + + public void setUseSqlStateCodes(String input) { + setValue(Keys.USE_SQL_STATE_CODES.toString(), input); + } + + public String getUseSqlStateCodes() { + return getValue(Keys.USE_SQL_STATE_CODES.toString()); + }; + + public void setUseStreamLengthsInPrepStmts(String input) { + setValue(Keys.USE_STREAM_LENGTHS_IN_PREP_STMTS.toString(), input); + } + + public String getUseStreamLengthsInPrepStmts() { + return getValue(Keys.USE_STREAM_LENGTHS_IN_PREP_STMTS.toString()); + }; + + public void setUseTimezone(String input) { + setValue(Keys.USE_TIMEZONE.toString(), input); + } + + public String getUseTimezone() { + return getValue(Keys.USE_TIMEZONE.toString()); + }; + + public void setUseUnbufferedInput(String input) { + setValue(Keys.USE_UNBUFFERED_INPUT.toString(), input); + } + + public String getUseUnbufferedInput() { + return getValue(Keys.USE_UNBUFFERED_INPUT.toString()); + }; + + public void setUseUnicode(String input) { + setValue(Keys.USE_UNICODE.toString(), input); + } + + public String getUseUnicode() { + return getValue(Keys.USE_UNICODE.toString()); + }; + + public void setUseUsageAdvisor(String input) { + setValue(Keys.USE_USAGE_ADVISOR.toString(), input); + } + + public String getUseUsageAdvisor() { + return getValue(Keys.USE_USAGE_ADVISOR.toString()); + }; + + public void setUser(String input) { + setValue(Keys.USER.toString(), input); + } + + public String getUser() { + return getValue(Keys.USER.toString()); + }; + + public void setUtf8OutsideBmpExcludedColumnNamePattern(String input) { + setValue(Keys.UTF8_OUTSIDE_BMP_EXCLUDED_COLUMN_NAME_PATTERN.toString(), + input); + } + + public String getUtf8OutsideBmpExcludedColumnNamePattern() { + return getValue(Keys.UTF8_OUTSIDE_BMP_EXCLUDED_COLUMN_NAME_PATTERN + .toString()); + }; + + public void setUtf8OutsideBmpIncludedColumnNamePattern(String input) { + setValue(Keys.UTF8_OUTSIDE_BMP_INCLUDED_COLUMN_NAME_PATTERN.toString(), + input); + } + + public String getUtf8OutsideBmpIncludedColumnNamePattern() { + return getValue(Keys.UTF8_OUTSIDE_BMP_INCLUDED_COLUMN_NAME_PATTERN + .toString()); + }; + + public void setVerifyServerCertificate(String input) { + setValue(Keys.VERIFY_SERVER_CERTIFICATE.toString(), input); + } + + public String getVerifyServerCertificate() { + return getValue(Keys.VERIFY_SERVER_CERTIFICATE.toString()); + }; + + public void setZeroDateTimeBehavior(String input) { + setValue(Keys.ZERO_DATE_TIME_BEHAVIOR.toString(), input); + } + + public String getZeroDateTimeBehavior() { + return getValue(Keys.ZERO_DATE_TIME_BEHAVIOR.toString()); + }; + + public HashMap<String, String> filterProperties() { + return filterProperties(OSGiUtil.getEnumValues(Keys.class)); + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/dispose/AbstractDisposable.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/dispose/AbstractDisposable.java new file mode 100644 index 0000000..dfef3c5 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/dispose/AbstractDisposable.java
@@ -0,0 +1,170 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.dispose; + +import java.util.ArrayList; +import java.util.List; + +// TODO: Auto-generated Javadoc +/** + * Base implementation for {@link IDisposable}. Subclasses should override + * {@link #internalDispose()} to dispose their content. + */ +public abstract class AbstractDisposable implements IDisposable { + + /** The disposed. */ + private volatile boolean disposed; + + /** The disposing. */ + private volatile boolean disposing; + + /** The dispose listeners. */ + private List<IDisposable.Listener> disposeListeners; + + /** + * {@inheritDoc} + */ + @Override + public boolean isDisposed() { + return disposed; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean isDisposing() { + return disposing; + } + + /** + * {@inheritDoc} + */ + @Override + public void dispose() { + // check disposed first + if (!canDispose()) { + return; + } + + synchronized (this) { + // check disposed again for threads that have been waiting in lock + if (!canDispose()) { + return; + } + + try { + disposing = true; + + if (!isDisposed()) { + internalDispose(); + } + + // first call the dispose listener and the set disposed=true + notifyDisposeListeners(); + + // clear the dispose listener + // + if (disposeListeners != null) { + disposeListeners.clear(); + disposeListeners = null; + } + + } finally { + disposed = true; + disposing = false; + } + } + } + + /** + * Returns true if not disposing and not disposed. + * + * @return true, if successful + */ + protected boolean canDispose() { + return !isDisposing() && !isDisposed(); + } + + /** + * Should be overridden by subclasses to dispose their content. + */ + protected abstract void internalDispose(); + + /** + * Checks whether the element is disposed. Throws a DisposeException is the + * element is disposed. + * + * @throws DisposeException the dispose exception + */ + protected void checkDisposed() { + IDisposable.DisposableUtil.checkDisposed(this); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.dispose.IDisposable#addDisposeListener(org.eclipse.osbp.runtime.common.dispose.IDisposable.Listener) + */ + @Override + public void addDisposeListener(Listener listener) { + checkDisposed(); + + if (listener == null) { + return; + } + + if (disposeListeners == null) { + disposeListeners = new ArrayList<IDisposable.Listener>(); + } + + if (!disposeListeners.contains(listener)) { + disposeListeners.add(listener); + } + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.dispose.IDisposable#removeDisposeListener(org.eclipse.osbp.runtime.common.dispose.IDisposable.Listener) + */ + @Override + public void removeDisposeListener(Listener listener) { + checkDisposed(); + + if (listener == null || disposeListeners == null) { + return; + } + + disposeListeners.remove(listener); + } + + /** + * Notifies all listeners about the disposal of that elemenyElement. + */ + protected void notifyDisposeListeners() { + if (disposeListeners == null) { + return; + } + + for (IDisposable.Listener listener : disposeListeners + .toArray(new IDisposable.Listener[disposeListeners.size()])) { + listener.notifyDisposed(this); + } + } + + /** + * Returns a mutable list of dispose listener. + * + * @return the disposeListeners + */ + protected List<IDisposable.Listener> getDisposeListeners() { + return disposeListeners != null ? new ArrayList<IDisposable.Listener>( + disposeListeners) : new ArrayList<IDisposable.Listener>(); + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/dispose/IDisposable.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/dispose/IDisposable.java new file mode 100644 index 0000000..c8125a1 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/dispose/IDisposable.java
@@ -0,0 +1,113 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.dispose; + +/** + * Disposable objects can be destroyed. Which means, that the state is invalid + * for further use and internal references are prepared for garbage collection.<br> + * Object that have been disposed once cannot be used anymore. The creation of a + * new object is required. + * <p> + * No implement by clients. + */ +public interface IDisposable { + + /** + * Returns true, during the disposal process. + * + * @return disposing + */ + boolean isDisposing(); + + /** + * Returns true, if this object was already disposed. + * + * @return disposed + */ + boolean isDisposed(); + + /** + * If called, the element will be disposed. All created ui elements will be + * removed from its parent and this class will be prepared for garbage + * collection.<br> + * NO further use is possible. Creation of a new element required. + * <p> + * Calling this method twice is allowed. + */ + void dispose(); + + /** + * Adds a listener which will be notified if the object was disposed.<br> + * Adding a listener twice has no effect. + * + * @param listener + * Listener to be added + */ + void addDisposeListener(IDisposable.Listener listener); + + /** + * Remove the dispose listener. + * + * @param listener + * Listener to be removed + */ + void removeDisposeListener(IDisposable.Listener listener); + + /** + * A public helper util that can be used to check the dispose state of an + * element. + */ + public static class DisposableUtil { + + /** + * Throws a {@link DisposeException} if the given object is disposed. + * + * @param disposable + * The disposable object + */ + public static void checkDisposed(IDisposable disposable) { + if (disposable != null && disposable.isDisposed()) { + throw new DisposeException(disposable); + } + } + } + + /** + * Will be thrown if disposed objects are accessed. + */ + public static class DisposeException extends RuntimeException { + + private static final long serialVersionUID = 23566849649196005L; + + /** + * Constructor. + * + * @param o + * Any kind of object. + */ + public DisposeException(Object o) { + super(o.toString()); + } + } + + /** + * A listener that is notified if the observed object was disposed. + */ + public interface Listener { + /** + * Is called if the object was disposed. + * + * @param notifier + * The object sending the dispose event. + */ + void notifyDisposed(IDisposable notifier); + } +} \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/dispose/IReferenceCountable.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/dispose/IReferenceCountable.java new file mode 100644 index 0000000..22d557a --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/dispose/IReferenceCountable.java
@@ -0,0 +1,37 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.dispose; + +// TODO: Auto-generated Javadoc +/** + * Implementations need to hold an internal counter about references to the + * instance. If usage reaches zero, the instance must be disposed. + */ +public interface IReferenceCountable { + + /** + * Returns the usage count. + * + * @return the usage count + */ + int getUsageCount(); + + /** + * Increases the usage count. + */ + void increaseUsageCount(); + + /** + * Decreases the usage count. + */ + void decreaseUsageCount(); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/event/IEventBroker.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/event/IEventBroker.java new file mode 100644 index 0000000..f32b774 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/event/IEventBroker.java
@@ -0,0 +1,113 @@ +/******************************************************************************* + * Copyright (c) 2009, 2013 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + * Florian Pirchner - adjustments to osbp code + *******************************************************************************/ +package org.eclipse.osbp.runtime.common.event; + +import java.util.Dictionary; +import java.util.Map; + +import org.osgi.service.event.EventHandler; + +// TODO: Auto-generated Javadoc +/** + * To obtain an instance of the event broker service from the #IEclipseContext context, use + * + * <pre> + * (IEventBroker) context.get(IEventBroker.class.getName()) + * </pre> + * + * @noimplement This interface is not intended to be implemented by clients. + */ +public interface IEventBroker { + + /** + * The name of the default event attribute used to pass data. + */ + public String DATA = "org.eclipse.osbp.data"; //$NON-NLS-1$ + + /** + * Publish event synchronously (the method does not return until the event is processed). + * <p> + * If data is a {@link Map} or a {@link Dictionary}, it is passed as is. Otherwise, a new Map is + * constructed and its {@link #DATA} attribute is populated with this value. + * + * + * @param topic + * topic of the event to be published + * @param data + * data to be published with the event + * @return <code>true</code> if this operation was performed successfully; <code>false</code> + * otherwise + */ + public boolean send(String topic, Object data); + + /** + * Publish event asynchronously (this method returns immediately). + * <p> + * If data is a {@link Map} or a {@link Dictionary}, it is passed as is. Otherwise, a new Map is + * constructed and its {@link #DATA} attribute is populated with this value. + * + * + * @param topic + * topic of the event to be published + * @param data + * data to be published with the event + * @return <code>true</code> if this operation was performed successfully; <code>false</code> + * otherwise + */ + public boolean post(String topic, Object data); + + /** + * Subscribe for events on the given topic. + * <p> + * The handler will be called on the UI thread. + * + * + * @param topic + * topic of interest + * @param eventHandler + * object to call when an event of interest arrives + * @return <code>true</code> if this operation was performed successfully; <code>false</code> + * otherwise + */ + public boolean subscribe(String topic, EventHandler eventHandler); + + /** + * Subscribe for events on the given topic. + * <p> + * The handler will be called on the UI thread if "headless" is set to <code>true</code>. + * + * + * @param topic + * topic of interest + * @param filter + * the LDAP event filter + * @param eventHandler + * object to call when an event of interest arrives + * @param headless + * <code>true</code> if handing of the events does not require UI; <code>false</code> + * otherwise + * @return <code>true</code> if this operation was performed successfully; <code>false</code> + * otherwise + */ + public boolean subscribe(String topic, String filter, EventHandler eventHandler, + boolean headless); + + /** + * Unsubscribe handler previously registered using {@link #subscribe(String, EventHandler)}. + * + * @param eventHandler + * previously registered event handler + * @return <code>true</code> if this operation was performed successfully; <code>false</code> + * otherwise + */ + public boolean unsubscribe(EventHandler eventHandler); +} \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/extender/IExtenderConstants.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/extender/IExtenderConstants.java new file mode 100644 index 0000000..dd4a661 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/extender/IExtenderConstants.java
@@ -0,0 +1,26 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + */ +package org.eclipse.osbp.runtime.common.extender; + +/** + * The Interface IExtenderConstants. + */ +public interface IExtenderConstants { + + /** This Constant to be used for identification of DSL instance bundles. */ + public static final String FACTORY_MODEL_EXTENDER = "Factory-Model"; + /** This Constant to be used for identification of necessary runtime bundles. */ + public static final String FACTORY_BUNDLE_EXTENDER = "Factory-Bundle"; + /** This Constant to be used for identification of bundles containing translations. */ + public static final String FACTORY_TRANSLATIONS = "Factory-Translations"; +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/hash/HashUtil.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/hash/HashUtil.java new file mode 100644 index 0000000..a016bf6 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/hash/HashUtil.java
@@ -0,0 +1,56 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.hash; + +import com.google.common.hash.Hashing; + +// TODO: Auto-generated Javadoc +/** + * Common HashUtil. + */ +public class HashUtil { + + /** + * Creates a hash code for an object with the class name and objects + * hashCode. + * <p> + * <i>org.eclipse.osbp.dtos.ItemDTO(id=17):</i> + * <code>hash("org.eclipse.osbp.dtos.ItemDto({object.hashCode()})")</code> + * + * @param clazz the clazz + * @param object the object + * @return the string + */ + public static String createObjectWithIdHash(Class<?> clazz, Object object) { + return createObjectWithIdHash(clazz.getCanonicalName(), object); + } + + /** + * Creates a hash code for an object with the class name and objects + * hashCode. + * <p> + * <i>org.eclipse.osbp.dtos.ItemDTO(id=17):</i> + * <code>hash("org.eclipse.osbp.dtos.ItemDto({object.hashCode()})")</code> + * + * @param objectName the object name + * @param object the object + * @return the string + */ + public static String createObjectWithIdHash(String objectName, Object object) { + return Hashing + .sha1() + .hashBytes( + String.format("%s(%s)", objectName, + String.valueOf(object.hashCode())).getBytes()) + .toString(); + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/help/HelpRequestBuilder.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/help/HelpRequestBuilder.java new file mode 100644 index 0000000..ee99dd1 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/help/HelpRequestBuilder.java
@@ -0,0 +1,100 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.help; + +import java.util.HashMap; +import java.util.Map; + +// TODO: Auto-generated Javadoc +/** + * The Class HelpRequestBuilder. + */ +public class HelpRequestBuilder { + + /** The properties. */ + private Map<String, Object> properties = new HashMap<String, Object>(); + + /** + * Instantiates a new help request builder. + */ + private HelpRequestBuilder() { + + } + + /** + * New request. + * + * @return the help request builder + */ + public static final HelpRequestBuilder newRequest() { + return new HelpRequestBuilder(); + } + + /** + * The type of the help. + * + * @param requestType + * the request type + * @return the help request builder + */ + public HelpRequestBuilder type(String requestType) { + properties.put(IHelpService.TYPE__TASK, requestType); + return this; + } + + /** + * An id which identifies the help for the requestType. + * + * @param id + * the id + * @return the help request builder + */ + public HelpRequestBuilder id(Object id) { + properties.put(IHelpService.PROP__ID, id); + return this; + } + + /** + * Any kind of data. + * + * @param data + * the data + * @return the help request builder + */ + public HelpRequestBuilder data(Object data) { + properties.put(IHelpService.PROP__DATA, data); + return this; + } + + /** + * Pass any property. + * + * @param key + * the key + * @param value + * the value + * @return the help request builder + */ + public HelpRequestBuilder property(String key, Object value) { + properties.put(key, value); + return this; + } + + /** + * Returns the resulting request parameters. + * + * @return the map + */ + public Map<String, Object> toRequest() { + return new HashMap<String, Object>(properties); + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/help/IHelpService.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/help/IHelpService.java new file mode 100644 index 0000000..990f2db --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/help/IHelpService.java
@@ -0,0 +1,51 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.help; + +import java.util.Map; + +/** + * The Interface IHelpService. + */ +public interface IHelpService { + + /** + * Is used in the properties to define the helpType. + */ + public static final String PROP__HELP_TYPE = "helpType"; + + /** + * Is used in the properties to pass any kind of data. + */ + public static final String PROP__DATA = "data"; + + /** + * Is used in the properties to define the id of the given data. The + * implementation is responsible to provide a mechanism to convert the given + * id to the underlying logic. + */ + public static final String PROP__ID = "id"; + + /** + * The type of the help is a task help. + */ + public static final String TYPE__TASK = "task"; + + /** + * Returns the help content in html format. + * + * @param request + * The help content to be converted to html + * @return the html + */ + String getHtml(Map<String, Object> request); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/I18nAdapter.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/I18nAdapter.java new file mode 100644 index 0000000..72d9d7f --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/I18nAdapter.java
@@ -0,0 +1,22 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.i18n; + +import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable; + +public abstract class I18nAdapter extends AbstractDisposable implements + II18nService { + + @Override + protected void internalDispose() { + + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/I18nRegistry.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/I18nRegistry.java new file mode 100644 index 0000000..9b245c8 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/I18nRegistry.java
@@ -0,0 +1,689 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.i18n; + +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Properties; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.collections.map.LRUMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +// TODO: Auto-generated Javadoc +/** + * A registry that may be used to collect and access I18n translations based on + * URLs. The target of URLs need to be property files with the name pattern + * {file}_{language}-{country} (myI18n_de-DE). If no language and country are + * specified, the default locale is used. + */ +public class I18nRegistry { + + /** The Constant LOGGER. */ + private static final Logger LOGGER = LoggerFactory + .getLogger(I18nRegistry.class); + + /** The fast access. */ + private final LRUMap fastAccess = new LRUMap(1000); + + /** The cache. */ + private final Map<Locale, List<ResourceDescription>> cache = new HashMap<Locale, List<ResourceDescription>>(); + + /** + * Instantiates a new i18n registry. + */ + public I18nRegistry() { + + } + + /** + * Tries to find the translation for the given locale and key. + * + * @param locale + * the locale + * @param key + * the key + * @return the string + */ + public String findTranslation(Locale locale, String key) { + String result = tryFastAccess(locale, key); + if (result != null) { + return result; + } + + AccessPath accessPath = computeBestMatchAccessPath(locale, key); + Translation translation = accessPath.getTranslation(); + if (translation == null) { + return ""; + } + + return putFastAccess(translation.getLocale(), translation.getI18nKey(), + translation.getI18nValue()); + } + + /** + * Try to find the translation in the fast access map. + * + * @param locale + * the locale + * @param key + * the key + * @return the string + */ + private String tryFastAccess(Locale locale, String key) { + List<Locale> computedLocales = computeLocales(locale); + for (Locale temp : computedLocales) { + String fastAccessKey = createFastAccessKey(temp, key); + String result = (String) fastAccess.get(fastAccessKey); + if (result != null) { + return result; + } + } + return null; + } + + /** + * Try to find the translation in the fast access map. + * + * @param locale + * the locale + * @param key + * the key + * @param translation + * the translation + * @return the string + */ + private String putFastAccess(Locale locale, String key, String translation) { + fastAccess.put(createFastAccessKey(locale, key), translation); + return translation; + } + + /** + * Creates the key for the fast access map access. + * + * @param temp + * the temp + * @param key + * the key + * @return the string + */ + private String createFastAccessKey(Locale temp, String key) { + return temp.toLanguageTag() + ":" + key; + } + + /** + * Computes the access url. + * <p> + * Following order will be used: + * <ol> + * <li>Use given locale</li> + * <li>Create more specific locale and repeat until default locale is + * reached.</li> + * </ul> </li> + * </ol> + * + * @param locale + * the locale + * @param key + * the key + * @return the access path + */ + private AccessPath computeAccessPath(Locale locale, String key) { + + String temp = key; + Matcher valueMatcher = null; + if (temp != null && !"".equals(temp)) { + temp = Pattern.quote(temp); + Pattern valuePattern = Pattern.compile(temp); + valueMatcher = valuePattern.matcher(""); + valueMatcher.reset(); + } + + AccessPath url = new AccessPath(); + int prio = 0; + + List<Locale> computedLocales = computeLocales(locale); + + for (Locale computedLocale : computedLocales) { + Accessor accessor = new Accessor(computedLocale, ++prio, temp, + valueMatcher); + url.addAccessor(accessor); + } + + return url; + } + + /** + * Computes the access url to find the best matching element. See + * {@link #computeAccessPath(IProject, Locale, String, String)}. + * + * @param locale + * the locale + * @param key + * the key + * @return the access path + */ + private AccessPath computeBestMatchAccessPath(Locale locale, String key) { + return computeAccessPath(locale, key); + } + + /** + * Computes all locales that should be added to AccessPath. + * + * @param locale + * the locale + * @return the list + */ + private List<Locale> computeLocales(Locale locale) { + List<Locale> locales = new LinkedList<Locale>(); + + // Add first locale + locales.add(locale); + + Locale temp = locale; + while (true) { + String tag = temp.toLanguageTag(); + String[] segments = tag.split("-"); + if (segments.length > 1) { + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < segments.length - 1; i++) { + if (builder.length() != 0) { + builder.append("-"); + } + builder.append(segments[i]); + } + Locale moreGeneral = Locale.forLanguageTag(builder.toString()); + locales.add(moreGeneral); + temp = moreGeneral; + } else { + break; + } + } + + locales.add(new Locale("")); + + return locales; + } + + /** + * Checks if is valid. + * + * @param result + * the result + * @return true, if is valid + */ + private boolean isValid(String result) { + return result != null && !"".equals(result); + } + + /** + * Add a new resource to the cache. + * + * @param url + * the url + */ + public void addResource(URL url) { + + Properties properties = new Properties(); + try { + properties.load(url.openStream()); + } catch (IOException e) { + LOGGER.error("{}", e); + return; + } + + Locale locale = getLocale(url); + if (locale == null) { + LOGGER.error("Could not determine locale for " + url.toString()); + return; + } + + ResourceDescription description = new ResourceDescription(locale, url, + properties); + addResource(description); + } + + /** + * Gets the locale. + * + * @param url + * the url + * @return the locale + */ + private Locale getLocale(URL url) { + String urlString = url.toString(); + String file = urlString.substring(urlString.lastIndexOf("/") + 1); + + String[] tokens = file.replace(".properties", "").split("_"); + StringBuilder builder = new StringBuilder(); + if (tokens.length >= 2) { + for (int i = 1; i < tokens.length; i++) { + if (builder.length() > 0) { + builder.append("-"); + } + builder.append(tokens[i]); + } + } + Locale locale = Locale.forLanguageTag(builder.toString()); + return locale; + } + + /** + * Add a new resource to the cache. + * + * @param description + * the description + */ + public void addResource(ResourceDescription description) { + synchronized (cache) { + if (!cache.containsKey(description.getLocale())) { + cache.put(description.getLocale(), + new ArrayList<ResourceDescription>()); + } + + List<ResourceDescription> descs = cache + .get(description.getLocale()); + if (!descs.contains(description)) { + descs.add(description); + } + } + + // clear the fast access cache + fastAccess.clear(); + } + + /** + * Gets the resource descriptions. + * + * @param locale + * the locale + * @return the resource descriptions + */ + private List<ResourceDescription> getResourceDescriptions(Locale locale) { + if (cache.containsKey(locale)) { + return new ArrayList<I18nRegistry.ResourceDescription>( + cache.get(locale)); + } else { + return Collections.emptyList(); + } + } + + /** + * Removes the given translations. + * + * @param locale + * the locale + * @param url + * the url + */ + public void removeResource(Locale locale, URL url) { + if (!cache.containsKey(locale)) { + return; + } + + // clear the fast access cache + fastAccess.clear(); + + // remove the resource from the builder + synchronized (cache) { + List<ResourceDescription> descs = cache.get(locale); + for (Iterator<ResourceDescription> iterator = descs.iterator(); iterator + .hasNext();) { + ResourceDescription desc = iterator.next(); + try { + // avoid lookups -> + // http://michaelscharf.blogspot.co.at/2006/11/javaneturlequals-and-hashcode-make.html + URI uri = url.toURI(); + URI descURI = desc.getURI(); + if (descURI != null && descURI.equals(uri)) { + iterator.remove(); + } + } catch (URISyntaxException e) { + LOGGER.error("{}", e); + } + } + } + } + + /** + * Removes the translations with the given URL. + * + * @param url + * the url + */ + public void removeResource(URL url) { + Locale locale = getLocale(url); + if (locale == null) { + LOGGER.error("Could not determine locale for " + url.toString()); + return; + } + removeResource(locale, url); + + } + + /** + * Defines how the registry should be searched. For instance the ordering of + * locales... + */ + private static class AccessPath { + + /** The accessors. */ + private List<Accessor> accessors = new LinkedList<I18nRegistry.Accessor>(); + + /** + * Instantiates a new access path. + */ + public AccessPath() { + } + + /** + * Adds the accessor. + * + * @param accessor + * the accessor + */ + public void addAccessor(Accessor accessor) { + accessors.add(accessor); + } + + /** + * Returns the translation. The key matches the entire key for an i18n + * record. + * + * @return the translation + */ + public Translation getTranslation() { + for (Accessor accessor : accessors) { + Translation result = accessor.getTranslation(); + if (result != null) { + return result; + } + } + + return null; + } + } + + /** + * This class will access the registry. + */ + private class Accessor { + + /** The locale. */ + private final Locale locale; + + /** The matcher. */ + private final Matcher matcher; + + /** The key. */ + @SuppressWarnings("unused") + private final String key; + + /** The prio. */ + private final int prio; + + /** + * Instantiates a new accessor. + * + * @param locale + * the locale + * @param prio + * the prio + * @param key + * the key + * @param matcher + * the matcher + */ + public Accessor(Locale locale, int prio, String key, Matcher matcher) { + super(); + this.locale = locale; + this.key = key; + this.matcher = matcher; + this.prio = prio; + } + + /** + * Returns the first translation found. The matcher must match the given + * key. + * + * @return the translation + */ + public Translation getTranslation() { + List<ResourceDescription> descs = getResourceDescriptions(locale); + for (ResourceDescription desc : descs) { + for (Map.Entry<Object, Object> entry : desc.getProperties() + .entrySet()) { + if (matcher.reset((String) entry.getKey()).matches()) { + if (isValid((String) entry.getValue())) { + return new Translation((String) entry.getKey(), + (String) entry.getValue(), desc, prio); + } + } + } + } + return null; + } + } + + /** + * A resource is a file containing all translations for a file. + */ + public static class ResourceDescription { + + /** The locale. */ + private final Locale locale; + + /** The url. */ + private final URL url; + + /** The properties. */ + private final Properties properties; + + /** + * Instantiates a new resource description. + * + * @param locale + * the locale + * @param url + * the url + * @param properties + * the properties + */ + public ResourceDescription(Locale locale, URL url, Properties properties) { + this.locale = locale; + this.url = url; + this.properties = properties; + } + + /** + * Gets the locale. + * + * @return the locale + */ + public Locale getLocale() { + return locale; + } + + /** + * Gets the url. + * + * @return the url + */ + public URL getURL() { + return url; + } + + /** + * Gets the uri. + * + * @return the uri + * @throws URISyntaxException + * the URI syntax exception + */ + public URI getURI() throws URISyntaxException { + return url != null ? url.toURI() : null; + } + + /** + * Gets the properties. + * + * @return the properties + */ + public Properties getProperties() { + return properties; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + try { + // try to use URI for performance issues + URI uri = getURI(); + result = prime * result + ((uri == null) ? 0 : uri.hashCode()); + } catch (URISyntaxException e) { + // otherwise fall back to url + result = prime * result + ((url == null) ? 0 : url.hashCode()); + } + + return result; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + + ResourceDescription other = (ResourceDescription) obj; + try { + // try to use URI for performance issues + URI uri = getURI(); + URI otherUri = other.getURI(); + if (uri == null) { + if (otherUri != null) + return false; + } else if (!uri.equals(otherUri)) + return false; + } catch (URISyntaxException e) { + // otherwise fall back to url + if (url == null) { + if (other.url != null) + return false; + } else if (!url.equals(other.url)) + return false; + } + return true; + } + } + + /** + * The Class Translation. + */ + public static class Translation { + + /** The i18n key. */ + private final String i18nKey; + + /** The i18n value. */ + private final String i18nValue; + + /** The resource description. */ + private final ResourceDescription resourceDescription; + + /** The priority. */ + @SuppressWarnings("unused") + private final int priority; + + /** + * Instantiates a new translation. + * + * @param i18nKey + * the i18n key + * @param i18nValue + * the i18n value + * @param resourceDescription + * the resource description + * @param priority + * the priority + */ + public Translation(String i18nKey, String i18nValue, + ResourceDescription resourceDescription, int priority) { + super(); + this.i18nKey = i18nKey; + this.i18nValue = i18nValue; + this.resourceDescription = resourceDescription; + this.priority = priority; + } + + /** + * Returns the i18nKey. + * + * @return the i18n key + */ + public String getI18nKey() { + return i18nKey; + } + + /** + * Returns the i18nValue. + * + * @return the i18n value + */ + public String getI18nValue() { + return i18nValue; + } + + /** + * Returns the locale where key and value had been found. + * + * @return the locale + */ + public Locale getLocale() { + return resourceDescription.getLocale(); + } + + /** + * Returns the resource description, where the i18n entry was contained. + * + * @return the resource description + */ + public ResourceDescription getResourceDescription() { + return resourceDescription; + } + + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/I18nUtil.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/I18nUtil.java new file mode 100644 index 0000000..260da4c --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/I18nUtil.java
@@ -0,0 +1,130 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.i18n; + +import java.text.DecimalFormat; +import java.util.Locale; + +// TODO: Auto-generated Javadoc +/** + * The Class I18nUtil. + */ +public class I18nUtil { + + /** + * Formats the enum literal. + * + * @param i18nService the i18n service + * @param value the value + * @param locale the locale + * @return the string + */ + public static String translateEnum(II18nService i18nService, Object value, + Locale locale) { + Enum<?> enumx = (Enum<?>) value; + String i18nKey = getI18nKey(enumx.getClass().getName(), enumx); + String result = null; + if (i18nService != null) { + result = i18nService.getValue(i18nKey, locale); + } + + if (result == null || result.trim().equals("")) { + result = enumx.name(); + } + + return result; + } + + /** + * Formats the boolean value. + * + * @param i18nService the i18n service + * @param value the value + * @param locale the locale + * @return the string + */ + public static String translateBoolean(II18nService i18nService, + Boolean value, Locale locale) { + if (i18nService == null) { + return ""; + } + String result = i18nService.getValue(Boolean.class.getName() + "." + + value.toString(), locale); + + if (result == null || result.trim().equals("")) { + result = value.toString(); + } + + return result; + } + + /** + * Returns the i18n key for the enum and its literal. + * + * @param enumName the enum name + * @param literal the literal + * @return the i18n key + */ + public static String getI18nKey(String enumName, Enum<?> literal) { + return enumName + "." + literal.name(); + } + + /** + * Returns the i18n key for the enum and its literal. + * + * @param enumX the enum x + * @return the i18n key + */ + public static String getI18nKey(Enum<?> enumX) { + return getI18nKey(enumX.getClass().getName(), enumX); + } + + /** + * Returns the i18nImageKey for the Enum name and literal. + * + * @param enumName the enum name + * @param literal the literal + * @return the image i18n key + */ + public static String getImageI18nKey(String enumName, Enum<?> literal) { + return enumName + "." + literal.name() + ".image"; + } + + /** + * Returns the image key for the given label key. + * + * @param i18nLabelKey the i18n label key + * @return the image key + */ + public static String getImageKey(String i18nLabelKey) { + String iconKey = i18nLabelKey + ".image"; + return iconKey; + } + + /** + * Translates number values to their locale representation. + * + * @param i18nService the i18n service + * @param number the number + * @param locale the locale + * @return the string + */ + public static String translateNumber(II18nService i18nService, + Number number, Locale locale) { + + if (number instanceof Short || number instanceof Integer + || number instanceof Byte || number instanceof Long) { + return DecimalFormat.getIntegerInstance(locale).format(number); + } else { + return DecimalFormat.getNumberInstance(locale).format(number); + } + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/II18nService.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/II18nService.java new file mode 100644 index 0000000..c286b58 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/II18nService.java
@@ -0,0 +1,37 @@ +/** + * Copyright (c) 2012, 2015 - Lunifera GmbH (Austria), Loetz GmbH&Co.KG and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - initial API and implementation + */ +package org.eclipse.osbp.runtime.common.i18n; + +import java.util.Locale; + +import org.eclipse.osbp.runtime.common.dispose.IDisposable; + + +/** + * This service returns the string value for a given i18nKey and locale. + */ +public interface II18nService extends IDisposable { + + /** The id. */ + public static String ID = II18nService.class.getName(); + + /** + * Returns the i18nKey for the given key and locale. + * + * @param i18nKey + * the i18n key + * @param locale + * the locale + * @return the value + */ + String getValue(String i18nKey, Locale locale); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/ITranslator.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/ITranslator.java new file mode 100644 index 0000000..19293e5 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/ITranslator.java
@@ -0,0 +1,23 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.common.i18n; + +import java.util.Locale; +import java.util.Map; + +public interface ITranslator { + public void changeLocale(Locale locale); + public void mergeTranslations(); + public Map<String,String> getTranslations(); +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/URLI18nService.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/URLI18nService.java new file mode 100644 index 0000000..1ddcf4e --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/i18n/URLI18nService.java
@@ -0,0 +1,57 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.i18n; + +import java.net.URL; +import java.util.Locale; + +import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable; + +// TODO: Auto-generated Javadoc +/** + * The I18nService uses the given URLs to add property files. + * <p> + * See {@link I18nRegistry} for details about the file name pattern. + */ +public class URLI18nService extends AbstractDisposable implements II18nService { + + /** The registry. */ + private I18nRegistry registry = new I18nRegistry(); + + /** + * Append the translations. + * + * @param url + * the url + */ + public void append(URL url) { + checkDisposed(); + registry.addResource(url); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.i18n.II18nService#getValue(java.lang.String, java.util.Locale) + */ + @Override + public String getValue(String i18nKey, Locale locale) { + checkDisposed(); + return registry.findTranslation(locale, i18nKey); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.dispose.AbstractDisposable#internalDispose() + */ + @Override + protected void internalDispose() { + registry = null; + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyCode.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyCode.java new file mode 100644 index 0000000..741494b --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyCode.java
@@ -0,0 +1,149 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package org.eclipse.osbp.runtime.common.keystroke; + +import java.io.Serializable; + +/** + * From Vaadin ShortcutAction. + */ +public interface KeyCode extends Serializable { + public static final int ENTER = 13; + + public static final int ESCAPE = 27; + + public static final int PAGE_UP = 33; + + public static final int PAGE_DOWN = 34; + + public static final int TAB = 9; + + public static final int ARROW_LEFT = 37; + + public static final int ARROW_UP = 38; + + public static final int ARROW_RIGHT = 39; + + public static final int ARROW_DOWN = 40; + + public static final int BACKSPACE = 8; + + public static final int DELETE = 46; + + public static final int INSERT = 45; + + public static final int END = 35; + + public static final int HOME = 36; + + public static final int F1 = 112; + + public static final int F2 = 113; + + public static final int F3 = 114; + + public static final int F4 = 115; + + public static final int F5 = 116; + + public static final int F6 = 117; + + public static final int F7 = 118; + + public static final int F8 = 119; + + public static final int F9 = 120; + + public static final int F10 = 121; + + public static final int F11 = 122; + + public static final int F12 = 123; + + public static final int A = 65; + + public static final int B = 66; + + public static final int C = 67; + + public static final int D = 68; + + public static final int E = 69; + + public static final int F = 70; + + public static final int G = 71; + + public static final int H = 72; + + public static final int I = 73; + + public static final int J = 74; + + public static final int K = 75; + + public static final int L = 76; + + public static final int M = 77; + + public static final int N = 78; + + public static final int O = 79; + + public static final int P = 80; + + public static final int Q = 81; + + public static final int R = 82; + + public static final int S = 83; + + public static final int T = 84; + + public static final int U = 85; + + public static final int V = 86; + + public static final int W = 87; + + public static final int X = 88; + + public static final int Y = 89; + + public static final int Z = 90; + + public static final int NUM0 = 48; + + public static final int NUM1 = 49; + + public static final int NUM2 = 50; + + public static final int NUM3 = 51; + + public static final int NUM4 = 52; + + public static final int NUM5 = 53; + + public static final int NUM6 = 54; + + public static final int NUM7 = 55; + + public static final int NUM8 = 56; + + public static final int NUM9 = 57; + + public static final int SPACEBAR = 32; +} \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyCodeUtil.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyCodeUtil.java new file mode 100644 index 0000000..d93c3e6 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyCodeUtil.java
@@ -0,0 +1,146 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.keystroke; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +// TODO: Auto-generated Javadoc +/** + * The Class KeyCodeUtil. + */ +public class KeyCodeUtil { + + /** The Constant keyCodeMappings. */ + private static final Map<String, Integer> keyCodeMappings = new HashMap<String, Integer>(); + + /** The Constant modifierMappings. */ + private static final Map<String, Integer> modifierMappings = new HashMap<String, Integer>(); + + static { + keyCodeMappings.put("ENTER", KeyCode.ENTER); + keyCodeMappings.put("ESCAPE", KeyCode.ESCAPE); + keyCodeMappings.put("PAGE_UP", KeyCode.PAGE_UP); + keyCodeMappings.put("PAGE_DOWN", KeyCode.PAGE_DOWN); + keyCodeMappings.put("TAB", KeyCode.TAB); + keyCodeMappings.put("ARROW_LEFT", KeyCode.ARROW_LEFT); + keyCodeMappings.put("ARROW_UP", KeyCode.ARROW_UP); + keyCodeMappings.put("ARROW_RIGHT", KeyCode.ARROW_RIGHT); + keyCodeMappings.put("ARROW_DOWN", KeyCode.ARROW_DOWN); + keyCodeMappings.put("BACKSPACE", KeyCode.BACKSPACE); + keyCodeMappings.put("DELETE", KeyCode.DELETE); + keyCodeMappings.put("INSERT", KeyCode.INSERT); + keyCodeMappings.put("END", KeyCode.END); + keyCodeMappings.put("HOME", KeyCode.HOME); + keyCodeMappings.put("F1", KeyCode.F1); + keyCodeMappings.put("F2", KeyCode.F2); + keyCodeMappings.put("F3", KeyCode.F3); + keyCodeMappings.put("F4", KeyCode.F4); + keyCodeMappings.put("F5", KeyCode.F5); + keyCodeMappings.put("F6", KeyCode.F6); + keyCodeMappings.put("F7", KeyCode.F7); + keyCodeMappings.put("F8", KeyCode.F8); + keyCodeMappings.put("F9", KeyCode.F9); + keyCodeMappings.put("F10", KeyCode.F10); + keyCodeMappings.put("F11", KeyCode.F11); + keyCodeMappings.put("F12", KeyCode.F12); + keyCodeMappings.put("A", KeyCode.A); + keyCodeMappings.put("B", KeyCode.B); + keyCodeMappings.put("C", KeyCode.C); + keyCodeMappings.put("D", KeyCode.D); + keyCodeMappings.put("E", KeyCode.E); + keyCodeMappings.put("F", KeyCode.F); + keyCodeMappings.put("G", KeyCode.G); + keyCodeMappings.put("H", KeyCode.H); + keyCodeMappings.put("I", KeyCode.I); + keyCodeMappings.put("J", KeyCode.J); + keyCodeMappings.put("K", KeyCode.K); + keyCodeMappings.put("L", KeyCode.L); + keyCodeMappings.put("M", KeyCode.M); + keyCodeMappings.put("N", KeyCode.N); + keyCodeMappings.put("O", KeyCode.O); + keyCodeMappings.put("P", KeyCode.P); + keyCodeMappings.put("Q", KeyCode.Q); + keyCodeMappings.put("R", KeyCode.R); + keyCodeMappings.put("S", KeyCode.S); + keyCodeMappings.put("T", KeyCode.T); + keyCodeMappings.put("U", KeyCode.U); + keyCodeMappings.put("V", KeyCode.V); + keyCodeMappings.put("W", KeyCode.W); + keyCodeMappings.put("X", KeyCode.X); + keyCodeMappings.put("Y", KeyCode.Y); + keyCodeMappings.put("Z", KeyCode.Z); + keyCodeMappings.put("0", KeyCode.NUM0); + keyCodeMappings.put("1", KeyCode.NUM1); + keyCodeMappings.put("2", KeyCode.NUM2); + keyCodeMappings.put("3", KeyCode.NUM3); + keyCodeMappings.put("4", KeyCode.NUM4); + keyCodeMappings.put("5", KeyCode.NUM5); + keyCodeMappings.put("6", KeyCode.NUM6); + keyCodeMappings.put("7", KeyCode.NUM7); + keyCodeMappings.put("8", KeyCode.NUM8); + keyCodeMappings.put("9", KeyCode.NUM9); + keyCodeMappings.put("SPACEBAR", KeyCode.SPACEBAR); + + modifierMappings.put("SHIFT", ModifierKey.SHIFT); + modifierMappings.put("CTRL", ModifierKey.CTRL); + modifierMappings.put("ALT", ModifierKey.ALT); + modifierMappings.put("META", ModifierKey.META); + } + + /** + * Parses the keyCode to a key stroke definition.<br> + * KeyCode follows the pattern "CTRL+ALT+S". All reserved words are + * constants in the KeyCodeUtil. + * + * @param keyCode + * the key code + * @return the key stroke definition + */ + public static KeyStrokeDefinition parse(String keyCode) { + int keyCodeInt = -1; + List<Integer> modifierInts = new ArrayList<Integer>(); + + String[] tokens = keyCode.split("\\+"); + for (String t : tokens) { + String token = t.trim(); + if (modifierMappings.containsKey(token)) { + modifierInts.add(modifierMappings.get(token)); + } else if (keyCodeMappings.containsKey(token)) { + keyCodeInt = keyCodeMappings.get(token); + } + } + + return new KeyStrokeDefinition(keyCode, keyCodeInt, + toModifierInts(modifierInts)); + } + + /** + * To modifier ints. + * + * @param modifierInts + * the modifier ints + * @return the int[] + */ + private static int[] toModifierInts(List<Integer> modifierInts) { + int[] result = new int[modifierInts.size()]; + + for (int i = 0; i < modifierInts.size(); i++) { + int modifier = modifierInts.get(i); + result[i] = modifier; + } + + return result; + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyStrokeCallback.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyStrokeCallback.java new file mode 100644 index 0000000..9c176f4 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyStrokeCallback.java
@@ -0,0 +1,29 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.keystroke; + +// TODO: Auto-generated Javadoc +/** + * A callback to handle key strokes. + */ +public interface KeyStrokeCallback { + + /** + * Is called if the keystroke definition was activated. + * + * @param source + * the source + * @param target + * the target + */ + void callback(Object source, Object target); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyStrokeDefinition.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyStrokeDefinition.java new file mode 100644 index 0000000..82ddb5c --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/KeyStrokeDefinition.java
@@ -0,0 +1,74 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.keystroke; + +import java.util.Arrays; + +// TODO: Auto-generated Javadoc +/** + * The Class KeyStrokeDefinition. + */ +public class KeyStrokeDefinition { + + /** The caption. */ + private final String caption; + + /** The key code. */ + private final int keyCode; + + /** The modifier keys. */ + private final int[] modifierKeys; + + /** + * Instantiates a new key stroke definition. + * + * @param caption the caption + * @param keyCode the key code + * @param modifierKeys the modifier keys + */ + public KeyStrokeDefinition(String caption, int keyCode, int[] modifierKeys) { + super(); + this.caption = caption; + this.keyCode = keyCode; + this.modifierKeys = modifierKeys != null ? Arrays.copyOf(modifierKeys, + modifierKeys.length) : new int[0]; + } + + /** + * Returns the caption of the keystroke definition. Later it may use special + * characters to define keystrokes like <code>^&R</code> which may define + * CRTL+ALT+R. But this feature is not supported yet. + * + * @return the caption + */ + public String getCaption() { + return caption; + } + + /** + * Returns the key code. See See {@link KeyCode}. + * + * @return the key code + */ + public int getKeyCode() { + return keyCode; + } + + /** + * Returns the modifier keys. See See {@link ModifierKey}. + * + * @return the modifier keys + */ + public int[] getModifierKeys() { + return Arrays.copyOf(modifierKeys, modifierKeys.length); + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/ModifierKey.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/ModifierKey.java new file mode 100644 index 0000000..cbe0efc --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/keystroke/ModifierKey.java
@@ -0,0 +1,31 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package org.eclipse.osbp.runtime.common.keystroke; + +import java.io.Serializable; + +/** + * From Vaadin ShortcutAction. + */ +public interface ModifierKey extends Serializable { + public static final int SHIFT = 16; + + public static final int CTRL = 17; + + public static final int ALT = 18; + + public static final int META = 91; +} \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/memento/IMementoHandler.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/memento/IMementoHandler.java new file mode 100644 index 0000000..d8d1712 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/memento/IMementoHandler.java
@@ -0,0 +1,27 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.memento; + +// TODO: Auto-generated Javadoc +/** + * Implementors can apply and create mementos. + */ +public interface IMementoHandler { + + /** + * Applies the given memento to the UI element. + * + * @param memento + * the memento + */ + public void applyMemento(Object memento); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/memento/IMementoManager.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/memento/IMementoManager.java new file mode 100644 index 0000000..3578686 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/memento/IMementoManager.java
@@ -0,0 +1,49 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.memento; + +import org.eclipse.osbp.runtime.common.validation.IStatus; + +/** + * A memento manager is responsible to load and save mementos. + */ +public interface IMementoManager { + + /** The Constant EVENT_TOPIC. */ + public static final String EVENT_TOPIC = "runtime/memento"; + + /** The Constant PROP_PERSIST_POLICY. */ + public static final String PROP_PERSIST_POLICY = "persisting.policy"; + + /** + * Loads the memento for the given memento id. + * + * @param userId + * the user id + * @param mementoId + * the memento id + * @return the object + */ + Object loadMemento(String userId, String mementoId); + + /** + * Saves the memento by the given mementoId. + * + * @param userId + * the user id + * @param mementoId + * the memento id + * @param memento + * the memento + * @return status containing exceptions or IStatus.OK + */ + IStatus saveMemento(String userId, String mementoId, Object memento); +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/metric/TimeLogger.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/metric/TimeLogger.java new file mode 100644 index 0000000..18a1db0 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/metric/TimeLogger.java
@@ -0,0 +1,67 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.metric; + +import java.util.Date; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * The Class TimeLogger. + */ +public class TimeLogger { + + /** The Constant LOGGER. */ + private static final Logger LOGGER = LoggerFactory + .getLogger(TimeLogger.class); + + /** The clazz. */ + private final Class<?> clazz; + + /** The start. */ + private final long start; + + /** + * Start. + * + * @param clazz + * the clazz + * @return the time logger + */ + public static TimeLogger start(Class<?> clazz) { + return new TimeLogger(clazz); + } + + /** + * Instantiates a new time logger. + * + * @param clazz + * the clazz + */ + private TimeLogger(Class<?> clazz) { + this.clazz = clazz; + start = new Date().getTime(); + } + + /** + * Stop. + * + * @param message + * the message + */ + public void stop(String message) { + long stop = new Date().getTime(); +// LOGGER.info(clazz.getName() + ": " + message + " " + (stop - start) +// + "ms"); + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/shell/ICommandConstants.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/shell/ICommandConstants.java new file mode 100644 index 0000000..c96f765 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/shell/ICommandConstants.java
@@ -0,0 +1,19 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.common.shell; + +public interface ICommandConstants { + String COMMAND_SCOPE = "osgi.command.scope"; + String COMMAND_FUNCTION = "osgi.command.function"; +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/IDataState.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/IDataState.java new file mode 100644 index 0000000..988768c --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/IDataState.java
@@ -0,0 +1,100 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state; + +import java.util.Collection; + +/** + * Different versions of objects may be available. For instance a changed and an + * unchanged version of a bean. This class is responsible to handle beans and + * offer them in a common context. It caches registered beans in a GC-aware + * manner. + */ +public interface IDataState { + + /** + * Returns the size of the cached objects. + * + * @return the size + */ + long size(); + + /** + * Returns true if the cache is empty. + * + * @return true, if successful + */ + boolean empty(); + + /** + * Returns true, if a dirty version of the given object is available. + * + * @param key + * the key + * @return true, if successful + */ + boolean contains(Object key); + + /** + * Returns the dirty version of the object if available. + * + * @param key + * the key + * @return the object + */ + Object get(Object key); + + /** + * Registers the given object by the passed key. + * + * @param key + * the key + * @param object + * the object + */ + void register(Object key, Object object); + + /** + * Registers all objects provided by the collection. The hasher is used, to + * calculate proper keys for the map. + * + * @param objects + * the objects + * @param hasher + * the hasher + */ + void registerAll(Collection<Object> objects, Hashing hasher); + + /** + * Invalidates the object with the given key. + * + * @param key + * the key + */ + void invalidate(Object key); + + /** + * Returns the hash code or key for the given object. + */ + public interface Hashing { + + /** + * Returns the hashcode for the given object. + * + * @param object + * the object + * @return the hash code + */ + Object getHashCode(Object object); + + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/ISharedStateContext.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/ISharedStateContext.java new file mode 100644 index 0000000..85b2dd3 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/ISharedStateContext.java
@@ -0,0 +1,106 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state; + +import org.eclipse.osbp.runtime.common.hash.HashUtil; + +/** + * Different participants may share data. + * <p> + * For instance an {@link IDataState}. In a business application groups of views + * may share the same data like beans. And other groups of views will share + * their own data. A shared environment is an abstraction above this group. + * Views may share the {@link ISharedStateContext} and will also share their + * properties and data. + * + */ +public interface ISharedStateContext { + + /** + * Returns the unique id of the environment. + * + * @return the id + */ + String getId(); + + /** + * Set and key value pair to be shared in the environment. + * + * @param key + * the key + * @param value + * the value + */ + void setProperty(Object key, Object value); + + /** + * Returns the value for the key or <code>null</code> if no value + * registered. + * + * @param key + * the key + * @return the property + */ + Object getProperty(Object key); + + /** + * Returns all keys that are registered in the environment. + * + * @return the property keys + */ + Object[] getPropertyKeys(); + + /** + * Returns the dirty state that contains all dirty objects for the shared + * state. + * + * @return the dirty state + */ + IDataState getDirtyState(); + + /** + * Returns the "used state" that contains all objects that are currently + * used for the shared state. + * + * @return the global data state + */ + IDataState getGlobalDataState(); + + /** + * Returns an immutable compound state that handles the global and dirty + * state. + * + * @return the dirty aware global state + */ + IDataState getDirtyAwareGlobalState(); + + /** + * Makes the given dto undirty. + * + * @param key + * the key + * @param dto + * the dto + */ + void makeUndirty(Object key, Object dto); + + /** + * Adds a new "not persistent" entry. The key will be calculated using the + * {@link HashUtil}. + * <p> + * The object will be put into the dirtyState but not the global state. + * + * @param newEntry + * the new entry + */ + void addNewTransient(Object newEntry); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/ISharedStateContextProvider.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/ISharedStateContextProvider.java new file mode 100644 index 0000000..c0c0b15 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/ISharedStateContextProvider.java
@@ -0,0 +1,57 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state; + +import java.util.Map; + + +/** + * The {@link ISharedStateContextProvider} is responsible to create shared state + * context, to dispose them and to provide active instances of them. + * <p> + * The provider is counting references to the shared state context objects + * returned. A call to {@link #getContext(String, Map)} will increase the + * counter of references. A call to {@link #unget(ISharedStateContext)} + * will decrease the counter. If the counter for a {@link ISharedStateContext} + * decreased to 0, it will become disposed. + */ +public interface ISharedStateContextProvider { + + /** + * Returns the {@link ISharedStateContext} for the given id. If no shared + * state context is available, a new instance will be created and registered + * as an OSGi service. + * <p> + * The internal usage counter will be increased. Do not miss to + * {@link #unget(ISharedStateContext)} the context if it is not needed + * anymore. + * + * @param id + * the id + * @param properties + * - will be added to the OSGi service + * @return the context + */ + ISharedStateContext getContext(String id, Map<String, Object> properties); + + /** + * If an {@link ISharedStateContext} is not used anymore, that method must + * be called. + * <p> + * The internal usage counter will be decreased. If usage counter reaches + * zero, the context will be disposed. + * + * @param context + * the context + */ + void unget(ISharedStateContext context); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/SharedStateUnitOfWork.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/SharedStateUnitOfWork.java new file mode 100644 index 0000000..d2387d0 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/SharedStateUnitOfWork.java
@@ -0,0 +1,82 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.osbp.runtime.common.coordination.CoordinationManager; +import org.osgi.service.coordinator.Coordination; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +// TODO: Auto-generated Javadoc +/** + * The Class SharedStateUnitOfWork. + * + * @param <R> + * the generic type + */ +public abstract class SharedStateUnitOfWork<R> { + + /** The Constant LOGGER. */ + private static final Logger LOGGER = LoggerFactory + .getLogger(SharedStateUnitOfWork.class); + + /** + * Instantiates a new shared state unit of work. + */ + public SharedStateUnitOfWork() { + + } + + /** + * Executes the unit of work creating an implicit {@link Coordination} and + * passing the env as variables. + * + * @param context + * the context + * @return the data returned by {@link #doExecute()} + */ + public R execute(final ISharedStateContext context) { + if (context != null) { + Coordination peek = null; + CoordinationManager coordinationManager = new CoordinationManager(); + try { + Map<Class<?>, Object> props = new HashMap<Class<?>, Object>(); + props.put(ISharedStateContext.class, context); + peek = coordinationManager.createCurrentCoordination(props); + if (peek != null) { + return doExecute(); + } else { + LOGGER.error("No coordination service available!"); + } + } finally { + if (peek != null) { + peek.end(); + } + // release the coordination manager + coordinationManager.release(); + } + } else { + return doExecute(); + } + return null; + } + + /** + * The unit of work to do. + * + * @return any kind of data. May also be <code>null</code>. + */ + protected abstract R doExecute(); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/DataState.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/DataState.java new file mode 100644 index 0000000..2ee7652 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/DataState.java
@@ -0,0 +1,111 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state.impl; + +import java.util.Collection; + +import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable; +import org.eclipse.osbp.runtime.common.state.IDataState; + +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; + +/** + * Responsible to cache data by a cache implementation. + */ +public class DataState extends AbstractDisposable implements IDataState { + + protected Cache<Object, Object> cache; + protected final SharedStateContext sharedStateContext; + + public DataState(SharedStateContext sharedStateContext) { + this.sharedStateContext = sharedStateContext; + } + + @Override + public boolean contains(Object key) { + checkDisposed(); + + if (cache == null) { + return false; + } + return cache.getIfPresent(key) != null; + } + + @Override + public Object get(Object key) { + checkDisposed(); + + if (cache == null) { + return null; + } + + return cache.getIfPresent(key); + } + + @Override + public void register(Object key, Object object) { + checkDisposed(); + + if (contains(key)) { + // already contained + return; + } + + ensureCache(); + cache.put(key, object); + } + + protected void ensureCache() { + if (cache == null) { + cache = CacheBuilder.newBuilder().initialCapacity(250).weakValues() + .build(); + } + } + + @Override + public void registerAll(Collection<Object> objects, Hashing hasher) { + checkDisposed(); + for (Object object : objects) { + register(hasher.getHashCode(object), object); + } + } + + @Override + public void invalidate(Object key) { + checkDisposed(); + if (cache != null) { + cache.invalidate(key); + } + } + + @Override + protected void internalDispose() { + if (cache != null) { + cache.invalidateAll(); + cache = null; + } + } + + @Override + public long size() { + if (cache == null) { + return 0; + } + cache.cleanUp(); + return cache.size(); + } + + @Override + public boolean empty() { + return size() <= 0; + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/DirtyDataAwareGlobalState.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/DirtyDataAwareGlobalState.java new file mode 100644 index 0000000..dad7671 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/DirtyDataAwareGlobalState.java
@@ -0,0 +1,70 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state.impl; + +import java.util.Collection; + +import org.eclipse.osbp.runtime.common.state.IDataState; + +/** + * Combines the global data state and the dirty data state. + */ +public class DirtyDataAwareGlobalState implements IDataState { + + private final IDataState dataState; + private final IDataState dirtyState; + + public DirtyDataAwareGlobalState(IDataState dataState, IDataState dirtyState) { + this.dataState = dataState; + this.dirtyState = dirtyState; + } + + @Override + public boolean contains(Object key) { + return dirtyState.contains(key) || dataState.contains(key); + } + + @Override + public Object get(Object key) { + Object result = dirtyState.get(key); + if (result == null) { + result = dataState.get(key); + } + + return result; + } + + @Override + public void register(Object key, Object object) { + throw new UnsupportedOperationException("Not a valid call"); + } + + @Override + public void registerAll(Collection<Object> objects, Hashing hasher) { + throw new UnsupportedOperationException("Not a valid call"); + } + + @Override + public void invalidate(Object key) { + throw new UnsupportedOperationException("Not a valid call"); + } + + @Override + public long size() { + throw new UnsupportedOperationException("Not a valid call"); + } + + @Override + public boolean empty() { + throw new UnsupportedOperationException("Not a valid call"); + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/DirtyDataState.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/DirtyDataState.java new file mode 100644 index 0000000..7f035a0 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/DirtyDataState.java
@@ -0,0 +1,30 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state.impl; + +import com.google.common.cache.CacheBuilder; + +/** + * Responsible to cache changed objects. + */ +public class DirtyDataState extends DataState { + + public DirtyDataState(SharedStateContext sharedStateContext) { + super(sharedStateContext); + } + + protected void ensureCache() { + if (cache == null) { + cache = CacheBuilder.newBuilder().initialCapacity(20).weakValues() + .build(); + } + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/GlobalDataState.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/GlobalDataState.java new file mode 100644 index 0000000..5ad1cd9 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/GlobalDataState.java
@@ -0,0 +1,134 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state.impl; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.lang.reflect.InvocationTargetException; + +import org.apache.commons.lang.reflect.MethodUtils; +import org.eclipse.osbp.runtime.common.annotations.DtoUtils; +import org.eclipse.osbp.runtime.common.hash.HashUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +// TODO: Auto-generated Javadoc +/** + * Responsible to cache changed objects. + */ +public class GlobalDataState extends DataState implements + PropertyChangeListener { + + /** The Constant LOGGER. */ + private static final Logger LOGGER = LoggerFactory + .getLogger(GlobalDataState.class); + + /** + * Instantiates a new global data state. + * + * @param sharedStateContext + * the shared state context + */ + public GlobalDataState(SharedStateContext sharedStateContext) { + super(sharedStateContext); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.impl.DataState#register(java.lang.Object, java.lang.Object) + */ + @Override + public void register(Object key, Object object) { + checkDisposed(); + + if (contains(key)) { + // already contained + return; + } + + super.register(key, object); + + if (object != null) { + try { + MethodUtils.invokeMethod(object, "addPropertyChangeListener", + this); + } catch (SecurityException e) { + LOGGER.warn("Observer for dirtyState handling could not be added for " + + object.getClass().getName()); + } catch (IllegalAccessException e) { + LOGGER.warn("Observer for dirtyState handling could not be added for " + + object.getClass().getName()); + } catch (IllegalArgumentException e) { + LOGGER.warn("Observer for dirtyState handling could not be added for " + + object.getClass().getName()); + } catch (InvocationTargetException e) { + LOGGER.warn("Observer for dirtyState handling could not be added for " + + object.getClass().getName()); + } catch (NoSuchMethodException e) { + LOGGER.warn("Observer for dirtyState handling could not be added for " + + object.getClass().getName()); + } + } + } + + /* (non-Javadoc) + * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) + */ + @Override + public void propertyChange(PropertyChangeEvent event) { + Object object = event.getSource(); + Class<?> objClass = object.getClass(); + try { + if (DtoUtils.isDisposeField(objClass, event.getPropertyName())) { + handleDispose(event); + return; + } + // dirty field not forwarded to handle dirty + if (DtoUtils.isDirtyField(objClass, event.getPropertyName())) { + return; + } + } catch (SecurityException ignoreIt) { + LOGGER.error("{}", ignoreIt); + } + + handleDirty(event); + } + + /** + * Puts the object into the dirty state. + * + * @param event + * the event + */ + protected void handleDirty(PropertyChangeEvent event) { + Object object = event.getSource(); + Class<?> objClass = object.getClass(); + + // set the dirty flag to true if available + DtoUtils.invokeDirtySetter(object, true); + + sharedStateContext.handleDirty( + HashUtil.createObjectWithIdHash(objClass, object), object); + } + + /** + * Invalidates the object in the cache. + * + * @param event + * the event + */ + protected void handleDispose(PropertyChangeEvent event) { + Object object = event.getSource(); + Class<?> objClass = object.getClass(); + + sharedStateContext.invalidate( + HashUtil.createObjectWithIdHash(objClass, object), object); + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/SharedStateContext.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/SharedStateContext.java new file mode 100644 index 0000000..850fd4d --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/SharedStateContext.java
@@ -0,0 +1,235 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state.impl; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.osbp.runtime.common.annotations.DtoUtils; +import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable; +import org.eclipse.osbp.runtime.common.dispose.IReferenceCountable; +import org.eclipse.osbp.runtime.common.hash.HashUtil; +import org.eclipse.osbp.runtime.common.state.IDataState; +import org.eclipse.osbp.runtime.common.state.ISharedStateContext; + +// TODO: Auto-generated Javadoc +/** + * The Class SharedStateContext. + */ +public class SharedStateContext extends AbstractDisposable implements + ISharedStateContext, IReferenceCountable { + + /** The data. */ + private Map<Object, Object> data; + + /** The id. */ + private final String id; + + /** The dirty state. */ + private DirtyDataState dirtyState; + + /** The global state. */ + private DataState globalState; + + /** The usage count. */ + private int usageCount; + + /** + * Instantiates a new shared state context. + * + * @param id + * the id + */ + public SharedStateContext(String id) { + this.id = id; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContext#getId() + */ + @Override + public String getId() { + return id; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContext#setProperty(java.lang.Object, java.lang.Object) + */ + @Override + public void setProperty(Object key, Object value) { + checkDisposed(); + + if (data == null) { + data = new HashMap<Object, Object>(); + } + data.put(key, value); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContext#getProperty(java.lang.Object) + */ + @Override + public Object getProperty(Object key) { + checkDisposed(); + + if (data == null) { + return null; + } + return data.get(key); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContext#getPropertyKeys() + */ + @Override + public Object[] getPropertyKeys() { + checkDisposed(); + + if (data == null) { + return new Object[0]; + } + return data.keySet().toArray(); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContext#getDirtyState() + */ + @Override + public IDataState getDirtyState() { + checkDisposed(); + + if (dirtyState == null) { + dirtyState = new DirtyDataState(this); + } + return dirtyState; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContext#getGlobalDataState() + */ + @Override + public IDataState getGlobalDataState() { + checkDisposed(); + + if (globalState == null) { + globalState = new GlobalDataState(this); + } + return globalState; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContext#getDirtyAwareGlobalState() + */ + @Override + public IDataState getDirtyAwareGlobalState() { + return new DirtyDataAwareGlobalState(getGlobalDataState(), + getDirtyState()); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.dispose.AbstractDisposable#internalDispose() + */ + @Override + protected void internalDispose() { + if (data != null) { + data.clear(); + data = null; + } + + if (dirtyState != null) { + dirtyState.dispose(); + dirtyState = null; + } + + if (globalState != null) { + globalState.dispose(); + globalState = null; + } + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.dispose.IReferenceCountable#getUsageCount() + */ + @Override + public int getUsageCount() { + return usageCount; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.dispose.IReferenceCountable#increaseUsageCount() + */ + @Override + public void increaseUsageCount() { + usageCount++; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.dispose.IReferenceCountable#decreaseUsageCount() + */ + @Override + public void decreaseUsageCount() { + usageCount--; + } + + /** + * Invalidate. + * + * @param key + * the key + * @param object + * the object + */ + public void invalidate(String key, Object object) { + if (dirtyState != null) { + dirtyState.invalidate(key); + } + if (globalState != null) { + globalState.invalidate(key); + } + } + + /** + * Handle dirty. + * + * @param key + * the key + * @param object + * the object + */ + public void handleDirty(String key, Object object) { + if (dirtyState != null) { + dirtyState.register(key, object); + } + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContext#makeUndirty(java.lang.Object, java.lang.Object) + */ + @Override + public void makeUndirty(Object key, Object dto) { + getDirtyState().invalidate(key); + + // set the dirty flag if available to false + DtoUtils.invokeDirtySetter(dto, false); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContext#addNewTransient(java.lang.Object) + */ + @Override + public void addNewTransient(Object newEntry) { + // set the dirty flag if available to false + DtoUtils.invokeDirtySetter(newEntry, true); + getDirtyState().register( + HashUtil.createObjectWithIdHash(newEntry.getClass(), newEntry), + newEntry); + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/SharedStateContextProvider.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/SharedStateContextProvider.java new file mode 100644 index 0000000..6dd3af0 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/state/impl/SharedStateContextProvider.java
@@ -0,0 +1,192 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.state.impl; + +import java.util.Collection; +import java.util.Dictionary; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Map; + +import org.eclipse.osbp.runtime.common.dispose.IDisposable; +import org.eclipse.osbp.runtime.common.dispose.IReferenceCountable; +import org.eclipse.osbp.runtime.common.state.ISharedStateContext; +import org.eclipse.osbp.runtime.common.state.ISharedStateContextProvider; +import org.osgi.framework.BundleContext; +import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +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.slf4j.Logger; +import org.slf4j.LoggerFactory; + +// TODO: Auto-generated Javadoc +/** + * The Class SharedStateContextProvider. + */ +@Component(property = { "service.ranking=100" }, immediate = true) +public class SharedStateContextProvider implements ISharedStateContextProvider { + + /** The Constant OSGI_PROP__ENV_ID. */ + private static final String OSGI_PROP__ENV_ID = "sharedState.id"; + + /** The Constant LOGGER. */ + private static final Logger LOGGER = LoggerFactory + .getLogger(SharedStateContextProvider.class); + + /** The component context. */ + private ComponentContext componentContext; + + /** The registrations. */ + private Map<String, ServiceRegistration<ISharedStateContext>> registrations = new HashMap<String, ServiceRegistration<ISharedStateContext>>(); + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContextProvider#getContext(java.lang.String, java.util.Map) + */ + @Override + public ISharedStateContext getContext(String id, + Map<String, Object> properties) { + ISharedStateContext context = find(id); + if (context == null) { + context = createContext(id, properties); + } + + ((IReferenceCountable) context).increaseUsageCount(); + + return context; + } + + /** + * Creates the context. + * + * @param id + * the id + * @param inProperties + * the in properties + * @return the i shared state context + */ + protected ISharedStateContext createContext(String id, + Map<String, Object> inProperties) { + SharedStateContext context = new SharedStateContext(id); + + // register as service + Dictionary<String, Object> properties = new Hashtable<String, Object>(); + properties.put(OSGI_PROP__ENV_ID, id); + // add input properties + if (inProperties != null) { + for (Map.Entry<String, Object> entry : inProperties.entrySet()) { + properties.put(entry.getKey(), entry.getValue()); + } + } + ServiceRegistration<ISharedStateContext> reg = componentContext + .getBundleContext().registerService(ISharedStateContext.class, + context, properties); + registrations.put(id, reg); + return context; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.state.ISharedStateContextProvider#unget(org.eclipse.osbp.runtime.common.state.ISharedStateContext) + */ + @Override + public void unget(ISharedStateContext context) { + IReferenceCountable countable = (IReferenceCountable) context; + countable.decreaseUsageCount(); + + if (countable.getUsageCount() <= 0) { + ServiceRegistration<ISharedStateContext> reg = registrations + .remove(context.getId()); + if (reg != null) { + ISharedStateContext service = componentContext + .getBundleContext().getService(reg.getReference()); + if (service instanceof IDisposable) { + ((IDisposable) service).dispose(); + } + reg.unregister(); + } + } + } + + /** + * Activate. + * + * @param context + * the context + */ + @Activate + protected void activate(ComponentContext context) { + this.componentContext = context; + } + + /** + * Deactivate. + * + * @param context + * the context + */ + @Deactivate + protected void deactivate(ComponentContext context) { + + for (ServiceRegistration<ISharedStateContext> reg : registrations + .values()) { + ISharedStateContext service = context.getBundleContext() + .getService(reg.getReference()); + if (service instanceof IDisposable) { + ((IDisposable) service).dispose(); + } + reg.unregister(); + } + + this.componentContext = null; + } + + /** + * Find. + * + * @param id + * the id + * @return the i shared state context + */ + protected ISharedStateContext find(String id) { + try { + BundleContext bc = componentContext.getBundleContext(); + Collection<ServiceReference<ISharedStateContext>> references = bc + .getServiceReferences(ISharedStateContext.class, + createFilter(id)); + if (!references.isEmpty()) { + ISharedStateContext sharedStateContext = bc + .getService(references.iterator().next()); + return sharedStateContext; + } + } catch (InvalidSyntaxException e) { + LOGGER.error("{}", e); + } + + return null; + } + + /** + * Creates the filter. + * + * @param id + * the id + * @return the string + * @throws InvalidSyntaxException + * the invalid syntax exception + */ + protected String createFilter(String id) throws InvalidSyntaxException { + return String.format("(%s=%s)", OSGI_PROP__ENV_ID, id); + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/types/IBundleSpace.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/types/IBundleSpace.java new file mode 100644 index 0000000..64339c0 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/types/IBundleSpace.java
@@ -0,0 +1,47 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.types; + +import org.osgi.framework.Bundle; + +// TODO: Auto-generated Javadoc +/** + * A bundle space is a collection of bundles that expose their classes. Bundles + * with the bundle header <code>"OSBP-RuntimeBuilder-BundleSpace"</code> will be + * automatically added using the extender pattern. + */ +public interface IBundleSpace { + + /** + * Tries to find a class for the given class name using the bundles + * registered in the bundle space. + * + * @param name + * the name + * @return the class + * @throws ClassNotFoundException + * the class not found exception + */ + Class<?> forName(String name) throws ClassNotFoundException; + /** + * Adds a new bundle to the bundle space. The bundle will be used to find + * classes. + * + * @param bundle + */ + void add(Bundle bundle); + /** + * Removes the bundle from the bundle space. + * + * @param bundle + */ + void remove(Bundle bundle); +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/types/ITypeProviderService.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/types/ITypeProviderService.java new file mode 100644 index 0000000..00ff5b1 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/types/ITypeProviderService.java
@@ -0,0 +1,39 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.types; + +// TODO: Auto-generated Javadoc +/** + * This service is responsible to load classes which are visible for the domain. + * For instance jpa entities, dtos,... + * <p> + * Different concepts may be used. The default way to provide an implementation + * is the use of the BundleSpace. A bundleSpace is a selected quantity of + * bundles, that expose their classes. Bundles with the bundle header + * <code>"OSBP-RuntimeBuilder-BundleSpace"</code> will be automatically added + * using the extender pattern. The default implementation of this service will + * use the bundle space and tries to load classes by the registered bundles. + */ +public interface ITypeProviderService { + + /** + * Returns the class for the given qualified name and type. For emf pass the + * EClass as clazz. + * + * @param clazz + * the clazz + * @param qualifiedName + * the qualified name + * @return the class + */ + Class<?> forName(Object clazz, String qualifiedName); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/user/IUserInfo.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/user/IUserInfo.java new file mode 100644 index 0000000..0a256e1 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/user/IUserInfo.java
@@ -0,0 +1,48 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.user; + +import org.osgi.service.prefs.Preferences; + +// TODO: Auto-generated Javadoc +/** + * Provides information about the current user. + */ +public interface IUserInfo { + + /** + * Returns the id of the user. + * + * @return the id + */ + String getId(); + + // /** + // * Returns the location where all user specific settings are stored. If no + // * location is available, empty string will be returned. + // * + // * @return + // */ + // String getLocation(); + + /** + * Returns the user preferences. If no user preferences are available then + * <code>null</code> is returned. + * + * @param qualifier + * The qualifier to access the preference node. + * + * @return The preferences for the given qualifier or <code>null</code> if + * no proper preferences could be found. + */ + Preferences getPreferences(String qualifier); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/util/OSGiUtil.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/util/OSGiUtil.java new file mode 100644 index 0000000..12cca2c --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/util/OSGiUtil.java
@@ -0,0 +1,145 @@ +/** + * Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernhard Edler - Initial implementation + */ +package org.eclipse.osbp.runtime.common.util; + +import java.util.Arrays; +import java.util.Dictionary; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Properties; + +// TODO: Auto-generated Javadoc +/** + * The Class OSGiUtil. + */ +@SuppressWarnings("all") +public class OSGiUtil { + + /** + * Convert hash map to dictionary. + * + * @param input + * the input + * @return the dictionary + */ + public static Dictionary<String, Object> convertHashMapToDictionary( + HashMap<?, ?> input) { + Dictionary<String, Object> dict = new Hashtable<String, Object>(); + for (Object key : input.keySet()) { + dict.put(key.toString(), input.get(key)); + } + return dict; + } + + /** + * Convert hash map to properties. + * + * @param input + * the input + * @return the properties + */ + public static Properties convertHashMapToProperties(HashMap<?, ?> input) { + Properties props = new Properties(); + for (Object key : input.keySet()) { + props.put(key, input.get(key)); + } + return props; + } + + /** + * Convert dictionary to hash map. + * + * @param input + * the input + * @return the hash map + */ + public static HashMap<String, String> convertDictionaryToHashMap( + Dictionary<?, ?> input) { + HashMap<String, String> map = new HashMap<String, String>(); + Enumeration<String> iter = (Enumeration<String>) input.keys(); + while (iter.hasMoreElements()) { + String key = (String) iter.nextElement(); + map.put(key, input.get(key).toString()); + } + return map; + } + + /** + * Convert dictionary to properties. + * + * @param input + * the input + * @return the properties + */ + public static Properties convertDictionaryToProperties( + Dictionary<?, ?> input) { + Properties props = new Properties(); + Enumeration<String> iter = (Enumeration<String>) input.keys(); + while (iter.hasMoreElements()) { + String key = (String) iter.nextElement(); + props.setProperty(key, input.get(key).toString()); + } + return props; + } + + /** + * Gets the enum values. + * + * @param e + * the e + * @return the enum values + */ + public static String[] getEnumValues(Class<? extends Enum<?>> e) { + return Arrays.toString(e.getEnumConstants()).replaceAll("^.|.$", "") + .split(", "); + } + + /** + * Filter properties. + * + * @param properties + * the properties + * @param keySet + * the key set + * @return the hash map + */ + public static HashMap<String, String> filterProperties( + HashMap<String, String> properties, String[] keySet) { + for (String key : properties.keySet()) { + if (!Arrays.asList(keySet).contains(key)) { + properties.remove(key); + } + } + return properties; + }; + + /** + * Filter properties. + * + * @param properties + * the properties + * @param keySet + * the key set + * @return the properties + */ + public static Properties filterProperties(Properties properties, + String[] keySet) { + Enumeration<Object> iter = (Enumeration<Object>) properties.keys(); + while (iter.hasMoreElements()) { + String key = (String) iter.nextElement(); + if (!Arrays.asList(keySet).contains(key)) { + properties.remove(key); + } + } + return properties; + }; +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/IStatus.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/IStatus.java new file mode 100644 index 0000000..bf9fdc1 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/IStatus.java
@@ -0,0 +1,200 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.validation; + +/** + * The status defines the current state of a process. It may be used for + * different usecases. For instance for validations, to determine veto before + * calling a process, to visualize thrown exceptions,... It is a general + * implementation. + */ +public interface IStatus { + + /** + * A constant for ok status. + */ + public static final IStatus OK = Status.createOKStatus(); + + /** + * A constant for cancel status. + */ + public static final IStatus CANCEL = Status.createCancelStatus(); + + /** + * A constant for error status. + */ + public static final IStatus ERROR = Status.createErrorStatus(); + + /** + * The id of the affected application. + */ + public static final String PROP_UI_APPLICATION_ID = "application.id"; + + /** + * The id of the field. + */ + public static final String PROP_FIELD_ID = "field.id"; + + /** + * I18nKey of the field. + */ + public static final String PROP_FIELD_I18N_KEY = "field.i18nKey"; + + /** + * javax constraint if created by bean validation. + */ + public static final String PROP_JAVAX_CONSTRAINT = "javax.validation.constraint"; + + /** + * leaf bean if created by bean validation. + */ + public static final String PROP_JAVAX_LEAF_BEAN = "javax.validation.leafbean"; + + /** + * property path if created by bean validation. + */ + public static final String PROP_JAVAX_PROPERTY_PATH = "javax.validation.propertypath"; + + /** + * Class that created the message. + */ + public static final String PROP_CREATOR = "creator"; + + /** + * Returns the id of the status. It is prepared by the pattern + * <code>{bundleSymbolicName}.{code}</code>. So every bundle may specify its own codes. + * + * @return the id + */ + String getId(); + + /** + * Returns the status code. The code specifies the unique id of a status + * message in a bundle. + * + * @return the code + */ + String getCode(); + + /** + * Returns symbolic name of the bundle that has created the status. + * + * @return the bundle symblic name + */ + String getBundleSymblicName(); + + /** + * Returns the severity of the status. + * + * @return the severity + */ + Severity getSeverity(); + + /** + * Returns the message of the status. May be <code>null</code>. + * + * @return the message + */ + String getMessage(); + + /** + * Returns the exception of the status. May be <code>null</code>. + * + * @return the exception + */ + Exception getException(); + + /** + * Returns true, if the status is {@link Severity#OK} or + * {@link Severity#INFO}. + * + * @return true, if is ok + */ + boolean isOK(); + + /** + * Returns true, if the status is {@link Severity#INFO}. + * + * @return true, if is info + */ + boolean isInfo(); + + /** + * Returns true, if the status is {@link Severity#WARNING}. + * + * @return true, if is warning + */ + boolean isWarning(); + + /** + * Returns true, if the status is {@link Severity#ERROR}. + * + * @return true, if is error + */ + boolean isError(); + + /** + * Returns true, if the status is {@link Severity#CANCEL}. May be used to + * detect a "veto" for a process. + * + * @return true, if is cancel + */ + boolean isCancel(); + + /** + * Puts a property into the status. + * + * @param key + * the key + * @param value + * the value + */ + void putProperty(String key, Object value); + + /** + * Returns true, if a property exists. + * + * @param key + * the key + * @return true, if successful + */ + boolean containsProperty(String key); + + /** + * Returns the value of the property. + * + * @param key + * the key + * @return the property + */ + Object getProperty(String key); + + /** + * The severity of the status. + */ + enum Severity { + + /** The ok. */ + OK, + /** The info. */ + INFO, + /** The warning. */ + WARNING, + /** The error. */ + ERROR, + /** The cancel. */ + CANCEL, + /** The critical. */ + CRITICAL, + /** The systemerror. */ + SYSTEMERROR; + } +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/IValidationParticipant.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/IValidationParticipant.java new file mode 100644 index 0000000..a9a69ca --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/IValidationParticipant.java
@@ -0,0 +1,38 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.validation; + +import java.util.Map; +import java.util.Set; + +// TODO: Auto-generated Javadoc +/** + * A validation participant is used by the dto service, to validate complex + * rules. + */ +public interface IValidationParticipant { + + /** + * Validates the given object and returns status objects in case of warning + * or error. + * + * @param object + * The object to be validated + * @param kind + * The kind of validation to be performed + * @param properties + * Any kind of key-value pairs + * @return the sets the + */ + public Set<IStatus> validate(Object object, ValidationKind kind, + Map<String, Object> properties); + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/Status.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/Status.java new file mode 100644 index 0000000..f2f51d3 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/Status.java
@@ -0,0 +1,307 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ + +package org.eclipse.osbp.runtime.common.validation; + +import java.util.HashMap; +import java.util.Map; + +import org.osgi.framework.FrameworkUtil; + +// TODO: Auto-generated Javadoc +/** + * The Class Status. + */ +public class Status implements IStatus { + + /** The code. */ + private String code = ""; + + /** The bundle symbolic name. */ + private String bundleSymbolicName = ""; + + /** The severity. */ + private Severity severity; + + /** The message. */ + private String message = ""; + + /** The exception. */ + private Exception exception; + + /** The properties. */ + private Map<String, Object> properties; + + /** + * Instantiates a new status. + */ + public Status() { + + } + + /** + * Creates an OK status. + * + * @return the i status + */ + public static IStatus createOKStatus() { + Status status = new Status(); + status.severity = Severity.OK; + return status; + } + + /** + * Creates an CANCEL status. + * + * @return the i status + */ + public static IStatus createCancelStatus() { + Status status = new Status(); + status.severity = Severity.CANCEL; + return status; + } + + /** + * Creates an ERROR status. + * + * @return the i status + */ + public static IStatus createErrorStatus() { + Status status = new Status(); + status.severity = Severity.ERROR; + return status; + } + + /** + * Creates an ERROR status. + * + * @param e + * - the exception + * @return the i status + */ + public static IStatus createErrorStatus(Exception e) { + Status status = new Status(); + status.severity = Severity.ERROR; + status.exception = e; + return status; + } + + /** + * Creates a status for the given parameters. + * + * @param code + * - the unique message code (is unique in a bundle) + * @param clazz + * - the class that is contained in the bundle, that specifies + * the code + * @param severity + * - the serverity of the status + * @param message + * - the message of the status + * @return the i status + */ + public static IStatus createStatus(String code, Class<?> clazz, + Severity severity, String message) { + Status status = new Status(); + status.code = code; + status.bundleSymbolicName = getBundleSymbolicName(clazz); + status.severity = severity; + status.message = message; + return status; + } + + /** + * Creates the status. + * + * @param code + * - the unique message code (is unique in a bundle) + * @param clazz + * - the class that is contained in the bundle, that specifies + * the code + * @param severity + * - the serverity of the status + * @param message + * - the message of the status + * @param exception + * - the thrown exception + * @return the i status + */ + public static IStatus createStatus(String code, Class<?> clazz, + Severity severity, String message, Exception exception) { + Status status = new Status(); + status.code = code; + status.bundleSymbolicName = getBundleSymbolicName(clazz); + status.severity = severity; + status.message = message; + status.exception = exception; + return status; + } + + /** + * Creates the status. + * + * @param code + * - the unique message code (is unique in a bundle) + * @param clazz + * - the class that is contained in the bundle, that specifies + * the code + * @param severity + * - the serverity of the status + * @param exception + * - the thrown exception + * @return the i status + */ + public static IStatus createStatus(String code, Class<?> clazz, + Severity severity, Exception exception) { + Status status = new Status(); + status.code = code; + status.bundleSymbolicName = getBundleSymbolicName(clazz); + status.severity = severity; + status.exception = exception; + return status; + } + + /** + * Returns the bundle symbolic name for the given class. + * + * @param clazz + * the clazz + * @return the bundle symbolic name + */ + private static String getBundleSymbolicName(Class<?> clazz) { + if (clazz == null || FrameworkUtil.getBundle(clazz) == null) { + return "no bundle available"; + } + return FrameworkUtil.getBundle(clazz).getSymbolicName(); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#getId() + */ + @Override + public String getId() { + return String.format("%s.%s", getBundleSymblicName(), getCode()); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#getCode() + */ + @Override + public String getCode() { + return code; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#getBundleSymblicName() + */ + @Override + public String getBundleSymblicName() { + return bundleSymbolicName; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#getSeverity() + */ + @Override + public Severity getSeverity() { + return severity; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#getMessage() + */ + @Override + public String getMessage() { + return message; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#getException() + */ + @Override + public Exception getException() { + return exception; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#isOK() + */ + @Override + public boolean isOK() { + return severity == Severity.OK || severity == Severity.INFO; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#isInfo() + */ + @Override + public boolean isInfo() { + return severity == Severity.INFO; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#isWarning() + */ + @Override + public boolean isWarning() { + return severity == Severity.WARNING; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#isError() + */ + @Override + public boolean isError() { + return severity == Severity.ERROR; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#isCancel() + */ + @Override + public boolean isCancel() { + return severity == Severity.CANCEL; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#putProperty(java.lang.String, java.lang.Object) + */ + @Override + public void putProperty(String key, Object value) { + if (properties == null) { + properties = new HashMap<String, Object>(); + } + properties.put(key, value); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#containsProperty(java.lang.String) + */ + @Override + public boolean containsProperty(String key) { + if (properties == null) { + return false; + } + return properties.containsKey(key); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.common.validation.IStatus#getProperty(java.lang.String) + */ + @Override + public Object getProperty(String key) { + if (properties == null) { + return null; + } + return properties.get(key); + } + +}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/ValidationKind.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/ValidationKind.java new file mode 100644 index 0000000..94ca123 --- /dev/null +++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/validation/ValidationKind.java
@@ -0,0 +1,29 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.common.validation; + +/** + * The kind of validation to be performed. + */ +public enum ValidationKind { + + /** Validates "create new". */ + CREATE, + + /** Validates "update". */ + UPDATE, + + /** Validates "delete existing". */ + DELETE, + + /** Any other kind of validation. */ + OTHER; +}
diff --git a/org.eclipse.osbp.runtime.datasource.provider/.project b/org.eclipse.osbp.runtime.datasource.provider/.project new file mode 100644 index 0000000..b615579 --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/.project
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.datasource.provider</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.datasource.provider/LICENSE.txt b/org.eclipse.osbp.runtime.datasource.provider/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.datasource.provider/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.datasource.provider/META-INF/MANIFEST.MF new file mode 100644 index 0000000..ab4b857 --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.datasource.provider +Bundle-SymbolicName: org.eclipse.osbp.runtime.datasource.provider +Bundle-Vendor: Eclipse OSBP +Bundle-Version: 0.9.0.qualifier +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-ActivationPolicy: lazy +Import-Package: javax.transaction;version="1.1.0", + javax.transaction.xa;version="1.1.0", + org.osgi.framework;version="1.8.0", + org.osgi.service.cm;version="1.5.0", + org.osgi.service.component;version="1.2.2", + org.osgi.service.component.annotations;version="1.2.0", + org.osgi.service.jdbc, + org.osgi.service.jndi;version="1.0.0", + org.osgi.util.tracker;version="1.4.0", + org.slf4j;version="1.7.2" +Require-Bundle: org.eclipse.gemini.dbaccess.derby;bundle-version="1.1.0", + org.apache.derby;bundle-version="10.8.2", + org.eclipse.osbp.fork.gemini.naming;bundle-version="[1.1.0,1.1.1)", + org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)" +Service-Component: OSGI-INF/org.eclipse.osbp.runtime.datasource.provider.xml, + OSGI-INF/org.eclipse.osbp.runtime.datasource.provider.DatasourceService.xml +Export-Package: org.eclipse.osbp.runtime.datasource.provider;version="0.9.0"
diff --git a/org.eclipse.osbp.runtime.datasource.provider/OSGI-INF/org.eclipse.osbp.runtime.datasource.provider.DatasourceService.xml b/org.eclipse.osbp.runtime.datasource.provider/OSGI-INF/org.eclipse.osbp.runtime.datasource.provider.DatasourceService.xml new file mode 100644 index 0000000..4f283bc --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/OSGI-INF/org.eclipse.osbp.runtime.datasource.provider.DatasourceService.xml
@@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" name="org.eclipse.osbp.runtime.datasource.provider.DatasourceService"> + <implementation class="org.eclipse.osbp.runtime.datasource.provider.DatasourceService"/> + <service> + <provide interface="org.eclipse.osbp.runtime.common.datasource.IDataSourceService"/> + </service> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.datasource.provider/OSGI-INF/org.eclipse.osbp.runtime.datasource.provider.xml b/org.eclipse.osbp.runtime.datasource.provider/OSGI-INF/org.eclipse.osbp.runtime.datasource.provider.xml new file mode 100644 index 0000000..c588713 --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/OSGI-INF/org.eclipse.osbp.runtime.datasource.provider.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" configuration-policy="require" deactivate="deactivate" modified="update" name="org.eclipse.osbp.runtime.datasource.provider"> + <implementation class="org.eclipse.osbp.runtime.datasource.provider.DatasourceComponent"/> + <service> + <provide interface="org.osgi.util.tracker.ServiceTrackerCustomizer"/> + <provide interface="org.osgi.service.cm.ManagedService"/> + </service> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.datasource.provider/about.html b/org.eclipse.osbp.runtime.datasource.provider/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.datasource.provider/about.ini b/org.eclipse.osbp.runtime.datasource.provider/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.datasource.provider/about.mappings b/org.eclipse.osbp.runtime.datasource.provider/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.datasource.provider/about.properties b/org.eclipse.osbp.runtime.datasource.provider/about.properties new file mode 100644 index 0000000..6698453 --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.datasource.provider + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.datasource.provider/build.properties b/org.eclipse.osbp.runtime.datasource.provider/build.properties new file mode 100644 index 0000000..145b8c9 --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/build.properties
@@ -0,0 +1,7 @@ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + OSGI-INF/,\ + LICENSE.txt +source.. = src/ +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.datasource.provider/pom.xml b/org.eclipse.osbp.runtime.datasource.provider/pom.xml new file mode 100644 index 0000000..7a4062f --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/pom.xml
@@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.datasource.provider</artifactId> + <packaging>eclipse-plugin</packaging> + +</project>
diff --git a/org.eclipse.osbp.runtime.datasource.provider/src/org/eclipse/osbp/runtime/datasource/provider/Activator.java b/org.eclipse.osbp.runtime.datasource.provider/src/org/eclipse/osbp/runtime/datasource/provider/Activator.java new file mode 100644 index 0000000..056718c --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/src/org/eclipse/osbp/runtime/datasource/provider/Activator.java
@@ -0,0 +1,131 @@ +/** + * Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernhard Edler - Initial implementation + */ +package org.eclipse.osbp.runtime.datasource.provider; + +import java.util.Properties; + +import org.apache.derby.jdbc.EmbeddedDriver; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +@SuppressWarnings(value = { "all" }) +public class Activator implements BundleActivator { + + public static final String OSGI_JNDI_SERVICE_NAME = "osgi.jndi.service.name"; + public static final String OSGI_JNDI_URL_PREFIX = "osgi:service/"; + public static final String OSGI_UNIT_NAME = "osgi.unit.name"; + + public static final String DS_DRIVER_NAME = EmbeddedDriver.class.getName(); + + private static BundleContext ctx; + private static Activator plugin; + private Properties dataSourceProperties; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * + * @see + * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext + * ) + */ + public void start(BundleContext context) throws Exception { + ctx = context; + plugin = this; + // // PostgreSQL Properties + // // !!! on PostgreSQL, the server configuration property + // "maxPreparedConnections" + // // must be set to a value > 0 + // props.setProperty("user", "jppf"); + // props.setProperty("password", "jppf"); + // props.setProperty("databaseName", "jppf_samples"); + // props.setProperty("serverName", "localhost"); + // props.setProperty("portNumber", "5432"); + // // MySQL Properties + // props.setProperty("user", "jppf"); + // props.setProperty("password", "jppf"); + // props.setProperty("serverName", "localhost"); + // props.setProperty("port", "3306"); + // props.setProperty("databaseName", "jppf_samples"); + // props.setProperty("pinGlobalTxToPhysicalConnection", "true"); + // + // // H2 Properties + // props.setProperty("user", "jppf"); + // props.setProperty("password", "jppf"); + // props.setProperty("URL", + // "jdbc:h2:tcp://localhost:9092/./jppf_samples;SCHEMA=PUBLIC"); + } + + /* + * (non-Javadoc) + * + * @see + * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext + * ) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + ctx = null; + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +// private synchronized DataSource createDataSource(String jndiDatasource) +// throws SQLException, InvalidSyntaxException { +// DataSourceFactory dsf = lookupDsf(DS_DRIVER_NAME); +// DataSource ds = dsf.createDataSource(dataSourceProperties); +// Hashtable<String, String> ht = new Hashtable<String, String>(); +// ht.put(OSGI_JNDI_SERVICE_NAME, jndiDatasource); +// ctx.registerService(DataSource.class, ds, ht); +// return ds; +// } +// +// private synchronized XADataSource createXADataSource(String jndiDatasource) +// throws SQLException, InvalidSyntaxException { +// DataSourceFactory dsf = lookupDsf(DS_DRIVER_NAME); +// XADataSource ds = dsf.createXADataSource(dataSourceProperties); +// Hashtable<String, String> ht = new Hashtable<String, String>(); +// ht.put(OSGI_JNDI_SERVICE_NAME, "XA" + jndiDatasource); +// ctx.registerService(XADataSource.class, ds, ht); +// return ds; +// } +// +// private DataSourceFactory lookupDsf(String clientDriverName) +// throws InvalidSyntaxException { +// String filter = "(&(" + DataSourceFactory.OSGI_JDBC_DRIVER_CLASS + "=" +// + clientDriverName + "))"; +// return getDsf(filter); +// } +// +// private DataSourceFactory getDsf(String filter) +// throws InvalidSyntaxException { +// ServiceReference[] refs = null; +// refs = ctx.getServiceReferences(DataSourceFactory.class.getName(), +// filter); +// return (refs == null) ? null : (DataSourceFactory) ctx +// .getService(refs[0]); +// } +}
diff --git a/org.eclipse.osbp.runtime.datasource.provider/src/org/eclipse/osbp/runtime/datasource/provider/DatasourceComponent.java b/org.eclipse.osbp.runtime.datasource.provider/src/org/eclipse/osbp/runtime/datasource/provider/DatasourceComponent.java new file mode 100644 index 0000000..54fb43f --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/src/org/eclipse/osbp/runtime/datasource/provider/DatasourceComponent.java
@@ -0,0 +1,186 @@ +/** + * Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernhard Edler - Initial implementation + */ +package org.eclipse.osbp.runtime.datasource.provider; + +import java.sql.SQLException; +import java.util.Dictionary; +import java.util.Properties; + +import javax.sql.DataSource; +import javax.sql.XADataSource; + +import org.eclipse.osbp.runtime.common.datasource.config.CommonDatasourceConfig; +import org.eclipse.osbp.runtime.common.util.OSGiUtil; +import org.osgi.framework.Filter; +import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +import org.osgi.service.cm.ConfigurationException; +import org.osgi.service.cm.ManagedService; +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.ConfigurationPolicy; +import org.osgi.service.component.annotations.Deactivate; +import org.osgi.service.component.annotations.Modified; +import org.osgi.service.jdbc.DataSourceFactory; +import org.osgi.util.tracker.ServiceTracker; +import org.osgi.util.tracker.ServiceTrackerCustomizer; + +@Component(name = "org.eclipse.osbp.runtime.datasource.provider", configurationPolicy = ConfigurationPolicy.REQUIRE) +public class DatasourceComponent implements + ServiceTrackerCustomizer<DataSourceFactory, DataSourceFactory>, + ManagedService { + + private static final String DSFACTORY_FILTER = "(&(objectClass=org.osgi.service.jdbc.DataSourceFactory)(osgi.jdbc.driver.class=%s))"; + private ComponentContext context; + private DataSource ds; + private XADataSource xaDs; + private ServiceRegistration<DataSource> dsRegister; + private ServiceRegistration<XADataSource> xaDsRegister; + private ServiceTracker<DataSourceFactory, DataSourceFactory> dsFactoryTracker; + private DataSourceFactory dataSourceFactory; + + @Activate + protected void activate(ComponentContext context) { + this.context = context; + + } + + private Filter createFilter() throws InvalidSyntaxException { + Filter f = context.getBundleContext().createFilter( + String.format( + DSFACTORY_FILTER, + context.getProperties().get( + DataSourceFactory.OSGI_JDBC_DRIVER_NAME))); + return f; + } + + @Modified + protected void update(ComponentContext context) { + killCurrent(); + if (dataSourceFactory != null) { + createNewDatasource(context.getProperties()); + } + } + + private void killCurrent() { + if (dsRegister != null) { + ds = null; + dsRegister.unregister(); + dsRegister = null; + } + + if (xaDsRegister != null) { + xaDs = null; + xaDsRegister.unregister(); + xaDsRegister = null; + } + } + + private void createNewDatasource(Dictionary<?, ?> input) { + try { + String driverName = (String) input + .get(DataSourceFactory.OSGI_JDBC_DRIVER_NAME); + + Properties properties = OSGiUtil + .filterProperties(OSGiUtil + .convertDictionaryToProperties(input), + CommonDatasourceConfig + .getPropertyKeysForDriver(driverName)); + + ds = dataSourceFactory.createDataSource(properties); + xaDs = dataSourceFactory.createXADataSource(properties); + + // Hashtable<String, Object> props = new Hashtable<String, + // Object>(); + // props.put(JNDIConstants.JNDI_SERVICENAME, ""); + // TODO - please put props to registry + // 1) datasourceName from DatasourceFactory#OSGI_JDBC_DRIVER_CLASS, + // #OSGI_JDBC_DRIVER_NAME, #OSGI_JDBC_DRIVER_VERSION, + // #JDBC_DATABASE_NAME, #JDBC_DATASOURCE_NAME + // + // And please register the #JDBC_DATASOURCE_NAME with + // JNDIConstants.JNDI_SERVICENAME too. + dsRegister = context.getBundleContext().registerService( + DataSource.class, ds, null); + xaDsRegister = context.getBundleContext().registerService( + XADataSource.class, xaDs, null); + } catch (SQLException e) { + e.printStackTrace(); + } catch (SecurityException e) { + e.printStackTrace(); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + + @Deactivate + protected void deactivate(ComponentContext context) { + this.context = null; + + killCurrent(); + + if (dsFactoryTracker != null) { + dsFactoryTracker.close(); + dsFactoryTracker = null; + } + + } + + @Override + public DataSourceFactory addingService( + ServiceReference<DataSourceFactory> reference) { + if (dataSourceFactory == null) { + dataSourceFactory = context.getBundleContext() + .getService(reference); + createNewDatasource(context.getProperties()); + return dataSourceFactory; + } else { + return null; + } + } + + @Override + public void modifiedService(ServiceReference<DataSourceFactory> reference, + DataSourceFactory service) { + + } + + @Override + public void removedService(ServiceReference<DataSourceFactory> reference, + DataSourceFactory service) { + if (service == dataSourceFactory) { + killCurrent(); + dataSourceFactory = null; + } + } + + @Override + public void updated(Dictionary<String, ?> properties) + throws ConfigurationException { + try { + dsFactoryTracker = new ServiceTracker<DataSourceFactory, DataSourceFactory>( + context.getBundleContext(), createFilter(), this); + dsFactoryTracker.open(); + dataSourceFactory = dsFactoryTracker.waitForService(1000); + } catch (InvalidSyntaxException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + if (properties != null) { + killCurrent(); + createNewDatasource(properties); + } + } + +}
diff --git a/org.eclipse.osbp.runtime.datasource.provider/src/org/eclipse/osbp/runtime/datasource/provider/DatasourceService.java b/org.eclipse.osbp.runtime.datasource.provider/src/org/eclipse/osbp/runtime/datasource/provider/DatasourceService.java new file mode 100644 index 0000000..3052e3f --- /dev/null +++ b/org.eclipse.osbp.runtime.datasource.provider/src/org/eclipse/osbp/runtime/datasource/provider/DatasourceService.java
@@ -0,0 +1,143 @@ +/** + * Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bernhard Edler - Initial implementation + */ +package org.eclipse.osbp.runtime.datasource.provider; + +import java.io.IOException; +import java.sql.DatabaseMetaData; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +import javax.sql.DataSource; +import javax.sql.XADataSource; + +import org.eclipse.osbp.runtime.common.datasource.IDataSourceService; +import org.eclipse.osbp.runtime.common.datasource.config.CommonDatasourceConfig; +import org.eclipse.osbp.runtime.common.util.OSGiUtil; +import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceReference; +import org.osgi.service.cm.ConfigurationAdmin; +import org.osgi.service.component.ComponentContext; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.util.tracker.ServiceTracker; + +@SuppressWarnings("unused") +@Component +public class DatasourceService implements IDataSourceService { + private static final String ORG_LUNIFERA_EXAMPLES_DATASOURCE = "org.eclipse.osbp.runtime.datasource.provider"; + private ServiceTracker<ConfigurationAdmin, ConfigurationAdmin> cfgAdminTracker; + private ConfigurationAdmin configAdmin; + private ComponentContext context; + + private Collection<ServiceReference<XADataSource>> xADataSources; + private Collection<ServiceReference<DataSource>> dataSources; + + @Activate + protected void activate(ComponentContext context) { + this.context = context; + + try { + cfgAdminTracker = new ServiceTracker<ConfigurationAdmin, ConfigurationAdmin>( + context.getBundleContext(), ConfigurationAdmin.class, null); + cfgAdminTracker.open(); + configAdmin = cfgAdminTracker.waitForService(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + @Override + public List<DataSourceInfo> getDataSourcInfos(String filter) { + try { + dataSources = context.getBundleContext().getServiceReferences( + DataSource.class, filter); + xADataSources = context.getBundleContext().getServiceReferences( + XADataSource.class, filter); + } catch (InvalidSyntaxException e) { + } + + ArrayList<DataSourceInfo> dsInfos = new ArrayList<DataSourceInfo>(); + dataSources + .stream() + .map(serviceRef -> context.getBundleContext().getService( + serviceRef)).collect(Collectors.toList()).stream() + .forEach(dataSource -> { + try { + DataSourceInfo dI = new DataSourceInfo(); +// dI.getProperties().put("Url", c.getURL().toString()); + dsInfos.add(dI); + } catch (Exception e) { + e.printStackTrace(); + } + }); + + return dsInfos; + } + + @Override + public List<DataSource> getDataSources(String filter) { + try { + dataSources = context.getBundleContext().getServiceReferences( + DataSource.class, filter); + xADataSources = context.getBundleContext().getServiceReferences( + XADataSource.class, filter); + } catch (InvalidSyntaxException e) { + } + + ArrayList<DataSource> dataSourcelist = new ArrayList<DataSource>(); + dataSourcelist = (ArrayList<DataSource>) dataSources + .stream() + .map(serviceRef -> context.getBundleContext().getService( + serviceRef)).collect(Collectors.toList()); + + return dataSourcelist; + } + + // @Override + // public void createDataSource(DataSourceConfig config) { + // try { + // // try { + // // if (configAdmin.listConfigurations(null) != null) { + // // List<Configuration> configurations = Arrays + // // .asList(configAdmin.listConfigurations(null)); + // // for (Configuration c : configurations) { + // // c.delete(); + // // } + // // } + // // } catch (NullPointerException e) { + // // e.printStackTrace(); + // // } + // String pid = configAdmin.createFactoryConfiguration( + // ORG_LUNIFERA_EXAMPLES_DATASOURCE, null).getPid(); + // configAdmin.getConfiguration(pid, null).update( + // config.getProperties()); + // } catch (IOException e) { + // e.printStackTrace(); + // // } catch (InvalidSyntaxException e) { + // // e.printStackTrace(); + // } + // } + + @Override + public void createDataSource(CommonDatasourceConfig config) { + try { + String pid = configAdmin.createFactoryConfiguration( + ORG_LUNIFERA_EXAMPLES_DATASOURCE, null).getPid(); + configAdmin.getConfiguration(pid, null) + .update(OSGiUtil.convertHashMapToDictionary(config + .getProperties())); + } catch (IOException e) { + e.printStackTrace(); + } + } +}
diff --git a/org.eclipse.osbp.runtime.designer.api/.project b/org.eclipse.osbp.runtime.designer.api/.project new file mode 100644 index 0000000..32ab2ef --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/.project
@@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.designer.api</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.designer.api/LICENSE.txt b/org.eclipse.osbp.runtime.designer.api/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.designer.api/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.designer.api/META-INF/MANIFEST.MF new file mode 100644 index 0000000..0f89957 --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.designer.api +Bundle-SymbolicName: org.eclipse.osbp.runtime.designer.api +Bundle-Vendor: Eclipse OSBP +Bundle-Version: 0.9.0.qualifier +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: org.eclipse.osbp.runtime.designer.api +Require-Bundle: org.eclipse.emf.ecore
diff --git a/org.eclipse.osbp.runtime.designer.api/about.html b/org.eclipse.osbp.runtime.designer.api/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.designer.api/about.ini b/org.eclipse.osbp.runtime.designer.api/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.designer.api/about.mappings b/org.eclipse.osbp.runtime.designer.api/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.designer.api/about.properties b/org.eclipse.osbp.runtime.designer.api/about.properties new file mode 100644 index 0000000..c56dbb2 --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.designer.api + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.designer.api/build.properties b/org.eclipse.osbp.runtime.designer.api/build.properties new file mode 100644 index 0000000..889ec21 --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/build.properties
@@ -0,0 +1,8 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + .project,\ + .classpath,\ + LICENSE.txt +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.designer.api/pom.xml b/org.eclipse.osbp.runtime.designer.api/pom.xml new file mode 100644 index 0000000..089443c --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.designer.api</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.designer.api/src/org/eclipse/osbp/runtime/designer/api/IDesignerService.java b/org.eclipse.osbp.runtime.designer.api/src/org/eclipse/osbp/runtime/designer/api/IDesignerService.java new file mode 100644 index 0000000..4e99d0f --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/src/org/eclipse/osbp/runtime/designer/api/IDesignerService.java
@@ -0,0 +1,115 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.designer.api; + +/** + * This service is used by ECView components like layouts to deal with designer + * features. There is one instance per ECView context. + * + * <code>@Scope(Session-Scope)</code> If running in a web session, all ECViews in the session + * may share this instance. + * <code>@Scope(View-Scope)</code> But also each ECView-Context may use its own service. + * @NoImplementByClients use AbstractImplementation + */ +public interface IDesignerService { + + /** + * Returns true, if the design mode is active. + * + * @return true, if is design mode + */ + boolean isDesignMode(); + + /** + * If true, the design mode for the related ECView is activate. Deactivated + * otherwise. + * + * @param value + * the new design mode + */ + void setDesignMode(boolean value); + + /** + * Adds a design listener. + * + * @param listener + * the listener + */ + void addListener(IDesignListener listener); + + /** + * Removes the given design listener. + * + * @param listener + * the listener + */ + void removeListener(IDesignListener listener); + + /** + * Listeners may deal with design events. + * + * @see DesignEvent + */ + + public interface IDesignListener { + + /** + * The design event to be processed. + * + * @param event + * the event + */ + void notify(DesignEvent event); + + } + + /** + * The Class DesignEvent. + */ + public class DesignEvent { + + /** The type. */ + private final EventType type; + + /** + * Instantiates a new design event. + * + * @param type + * the type + */ + public DesignEvent(EventType type) { + super(); + this.type = type; + } + + /** + * Gets the type. + * + * @return the type + */ + public EventType getType() { + return type; + } + + } + + /** + * The Enum EventType. + */ + public enum EventType { + + /** The enabled. */ + ENABLED, + /** The disabled. */ + DISABLED + } + +}
diff --git a/org.eclipse.osbp.runtime.designer.api/src/org/eclipse/osbp/runtime/designer/api/IWidgetDesignConfigurator.java b/org.eclipse.osbp.runtime.designer.api/src/org/eclipse/osbp/runtime/designer/api/IWidgetDesignConfigurator.java new file mode 100644 index 0000000..d410e54 --- /dev/null +++ b/org.eclipse.osbp.runtime.designer.api/src/org/eclipse/osbp/runtime/designer/api/IWidgetDesignConfigurator.java
@@ -0,0 +1,42 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.designer.api; + +import org.eclipse.emf.ecore.EObject; + + +// TODO: Auto-generated Javadoc +/** + * The Interface IWidgetDesignConfigurator. + */ +public interface IWidgetDesignConfigurator { + + /** + * Is called to configure the given widget for designmode. Or to deconfig if + * designmode is off. + * + * @param widget + * the widget + * @param element + * the element + * @param designMode + * the design mode + */ + void configure(Object widget, EObject element, boolean designMode); + + /** + * Opens the edit dialog. + * @param widget + * @param model + */ + void openEditDialog(Object widget, EObject model); + +}
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/.project b/org.eclipse.osbp.runtime.eclipselink.core.fragment/.project new file mode 100644 index 0000000..e898a2a --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/.project
@@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.eclipselink.core.fragment</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/LICENSE.txt b/org.eclipse.osbp.runtime.eclipselink.core.fragment/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.eclipselink.core.fragment/META-INF/MANIFEST.MF new file mode 100644 index 0000000..3df4750 --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.eclipselink.core.fragment +Bundle-SymbolicName: org.eclipse.osbp.runtime.eclipselink.core.fragment +Bundle-Vendor: Eclipse OSBP +Bundle-Version: 0.9.0.qualifier +Fragment-Host: org.eclipse.persistence.core;bundle-version="2.6.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: org.eclipse.osbp.runtime.eclipselink.core.fragment;version="0.9.0" +Import-Package: javax.persistence.spi, + javax.transaction;version="1.1.0" +Require-Bundle: org.apache.aries.transaction.manager
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.html b/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.ini b/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.mappings b/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.properties b/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.properties new file mode 100644 index 0000000..c24bc71 --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.eclipselink.core.fragment + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/build.properties b/org.eclipse.osbp.runtime.eclipselink.core.fragment/build.properties new file mode 100644 index 0000000..fdca065 --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/build.properties
@@ -0,0 +1,7 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + build.properties,\ + LICENSE.txt +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/pom.xml b/org.eclipse.osbp.runtime.eclipselink.core.fragment/pom.xml new file mode 100644 index 0000000..03df75b --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/pom.xml
@@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.eclipselink.core.fragment</artifactId> + <packaging>eclipse-plugin</packaging> + +</project>
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/src/org/eclipse/osbp/runtime/eclipselink/core/fragment/OSBPPlatform.java b/org.eclipse.osbp.runtime.eclipselink.core.fragment/src/org/eclipse/osbp/runtime/eclipselink/core/fragment/OSBPPlatform.java new file mode 100644 index 0000000..732916c --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/src/org/eclipse/osbp/runtime/eclipselink/core/fragment/OSBPPlatform.java
@@ -0,0 +1,66 @@ +/******************************************************************************* + * Copyright (c) 1998, 2014 Oracle and/or its affiliates. All rights reserved. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 + * which accompanies this distribution. + * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Oracle - initial API and implementation from Oracle TopLink + * 06/30/2010-2.1.1 Michael O'Brien + * - 316513: Enable JMX MBean functionality for JBoss, Glassfish and WebSphere in addition to WebLogic + * Move JMX MBean generic registration code up from specific platforms + * see <link>http://wiki.eclipse.org/EclipseLink/DesignDocs/316513</link> + ******************************************************************************/ +package org.eclipse.osbp.runtime.eclipselink.core.fragment; + +import org.eclipse.persistence.platform.server.ServerPlatformBase; +import org.eclipse.persistence.sessions.DatabaseSession; + +/** + * PUBLIC: + * + * This is the concrete subclass responsible for representing JBoss-specific + * server behavior. + * + * This platform overrides: + * + * getExternalTransactionControllerClass(): to use an JBoss-specific controller + * class + */ +public class OSBPPlatform extends ServerPlatformBase { + + /** + * INTERNAL: Default Constructor: All behavior for the default constructor + * is inherited + */ + public OSBPPlatform(DatabaseSession newDatabaseSession) { + super(newDatabaseSession); + } + + @Override + public boolean isRuntimeServicesEnabledDefault() { + return false; + } + + /** + * INTERNAL: getExternalTransactionControllerClass(): Answer the class of + * external transaction controller to use for JBoss. This is read-only. + * + * @return Class externalTransactionControllerClass + * + * @see org.eclipse.persistence.transaction.JTATransactionController + * @see org.eclipse.persistence.platform.server.ServerPlatformBase#isJTAEnabled() + * @see org.eclipse.persistence.platform.server.ServerPlatformBase#disableJTA() + * @see org.eclipse.persistence.platform.server.ServerPlatformBase#initializeExternalTransactionController() + */ + public Class<?> getExternalTransactionControllerClass() { + if (externalTransactionControllerClass == null) { + externalTransactionControllerClass = OSBPTransactionController.class; + } + return externalTransactionControllerClass; + } + +}
diff --git a/org.eclipse.osbp.runtime.eclipselink.core.fragment/src/org/eclipse/osbp/runtime/eclipselink/core/fragment/OSBPTransactionController.java b/org.eclipse.osbp.runtime.eclipselink.core.fragment/src/org/eclipse/osbp/runtime/eclipselink/core/fragment/OSBPTransactionController.java new file mode 100644 index 0000000..a394617 --- /dev/null +++ b/org.eclipse.osbp.runtime.eclipselink.core.fragment/src/org/eclipse/osbp/runtime/eclipselink/core/fragment/OSBPTransactionController.java
@@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 1998, 2014 Oracle and/or its affiliates. All rights reserved. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 + * which accompanies this distribution. + * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html + * and the Eclipse Distribution License is available at + * http://www.eclipse.org/org/documents/edl-v10.php. + * + * Contributors: + * Oracle - initial API and implementation from Oracle TopLink + ******************************************************************************/ +package org.eclipse.osbp.runtime.eclipselink.core.fragment; + +import javax.transaction.TransactionManager; + +import org.eclipse.persistence.transaction.JTATransactionController; + +/** + * <p> + * <b>Purpose</b>: TransactionController implementation for JBoss JTA + * <p> + * <b>Description</b>: Implements the required behavior for controlling JTA 1.0 + * transactions in JBoss. The JTA TransactionManager must be set on the + * instance. + * + * @see org.eclipse.persistence.transaction.JTATransactionController + */ +public class OSBPTransactionController extends JTATransactionController { + public static final String JNDI_TRANSACTION_MANAGER = "osgi:service/javax.transaction.TransactionManager"; + + /** + * INTERNAL: Obtain and return the JTA TransactionManager on this platform + */ + protected TransactionManager acquireTransactionManager() throws Exception { + return (TransactionManager) jndiLookup(JNDI_TRANSACTION_MANAGER); + } +}
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/.project b/org.eclipse.osbp.runtime.ecore.bundlespace/.project new file mode 100644 index 0000000..09e6fca --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/.project
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.ecore.bundlespace</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/LICENSE.txt b/org.eclipse.osbp.runtime.ecore.bundlespace/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.ecore.bundlespace/META-INF/MANIFEST.MF new file mode 100644 index 0000000..2df7f33 --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.ecore.bundlespace +Bundle-Vendor: Eclipse OSBP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-SymbolicName: org.eclipse.osbp.runtime.ecore.bundlespace +Bundle-Version: 0.9.0.qualifier +Import-Package: org.osgi.framework;version="1.8.0", + org.osgi.service.component.annotations;version="1.2.0", + org.slf4j;version="1.7.2" +Service-Component: OSGI-INF/*.xml +Require-Bundle: org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)", + org.eclipse.emf.ecore
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/OSGI-INF/org.eclipse.osbp.runtime.ecore.bundlespace.BundleSpaceAwareEcoreFactoryService.xml b/org.eclipse.osbp.runtime.ecore.bundlespace/OSGI-INF/org.eclipse.osbp.runtime.ecore.bundlespace.BundleSpaceAwareEcoreFactoryService.xml new file mode 100644 index 0000000..125edf4 --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/OSGI-INF/org.eclipse.osbp.runtime.ecore.bundlespace.BundleSpaceAwareEcoreFactoryService.xml
@@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" deactivate="deactivate" immediate="true" name="org.eclipse.osbp.runtime.ecore.bundlespace.BundleSpaceAwareEcoreFactoryService"> + <implementation class="org.eclipse.osbp.runtime.ecore.bundlespace.BundleSpaceAwareEcoreFactoryService"/> + <reference bind="bindBundleSpace" cardinality="1..1" interface="org.eclipse.osbp.runtime.common.types.IBundleSpace" name="BundleSpace" policy="static" unbind="unbindBundleSpace"/> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/about.html b/org.eclipse.osbp.runtime.ecore.bundlespace/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/about.ini b/org.eclipse.osbp.runtime.ecore.bundlespace/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/about.mappings b/org.eclipse.osbp.runtime.ecore.bundlespace/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/about.properties b/org.eclipse.osbp.runtime.ecore.bundlespace/about.properties new file mode 100644 index 0000000..2dfc323 --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.ecore.bundlespace + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/build.properties b/org.eclipse.osbp.runtime.ecore.bundlespace/build.properties new file mode 100644 index 0000000..8f9717c --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/build.properties
@@ -0,0 +1,10 @@ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + .project,\ + .classpath,\ + OSGI-INF/,\ + .settings/,\ + LICENSE.txt +source.. = src/ +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/pom.xml b/org.eclipse.osbp.runtime.ecore.bundlespace/pom.xml new file mode 100644 index 0000000..6ff7e83 --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.ecore.bundlespace</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.ecore.bundlespace/src/org/eclipse/osbp/runtime/ecore/bundlespace/BundleSpaceAwareEcoreFactoryService.java b/org.eclipse.osbp.runtime.ecore.bundlespace/src/org/eclipse/osbp/runtime/ecore/bundlespace/BundleSpaceAwareEcoreFactoryService.java new file mode 100644 index 0000000..9ed6f6a --- /dev/null +++ b/org.eclipse.osbp.runtime.ecore.bundlespace/src/org/eclipse/osbp/runtime/ecore/bundlespace/BundleSpaceAwareEcoreFactoryService.java
@@ -0,0 +1,91 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.ecore.bundlespace; + +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EFactory; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.impl.EcoreFactoryImpl; +import org.eclipse.osbp.runtime.common.types.IBundleSpace; +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.component.annotations.Reference; +import org.osgi.service.component.annotations.ReferenceCardinality; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Component(immediate = true) +public class BundleSpaceAwareEcoreFactoryService { + + private static final Logger LOGGER = LoggerFactory + .getLogger(BundleSpaceAwareEcoreFactoryService.class); + + private IBundleSpace bundleSpace; + + private EFactory oldFactory; + + @Reference(cardinality = ReferenceCardinality.MANDATORY, unbind = "unbindBundleSpace") + protected void bindBundleSpace(IBundleSpace bundleSpace) { + this.bundleSpace = bundleSpace; + } + + protected void unbindBundleSpace(IBundleSpace bundleSpace) { + this.bundleSpace = null; + } + + @Activate + protected void activate() { + oldFactory = EcorePackage.eINSTANCE.getEFactoryInstance(); + // ensure that ecore will load classes based on bundlespace + EcorePackage.eINSTANCE + .setEFactoryInstance(new ClassLoadingDelegatingEcoreFactory()); + + LOGGER.info("Bound BundleSpaceAware EcoreFactory."); + } + + @Deactivate + protected void deactivate() { + EcorePackage.eINSTANCE.setEFactoryInstance(oldFactory); + oldFactory = null; + } + + private class ClassLoadingDelegatingEcoreFactory extends EcoreFactoryImpl { + public Class<?> createEJavaClassFromString(EDataType metaObject, + String initialValue) { + try { + if (initialValue == null) + return null; + else if ("boolean".equals(initialValue)) + return boolean.class; + else if ("byte".equals(initialValue)) + return byte.class; + else if ("char".equals(initialValue)) + return char.class; + else if ("double".equals(initialValue)) + return double.class; + else if ("float".equals(initialValue)) + return float.class; + else if ("int".equals(initialValue)) + return int.class; + else if ("long".equals(initialValue)) + return long.class; + else if ("short".equals(initialValue)) + return short.class; + else + return bundleSpace.forName(initialValue); + } catch (ClassNotFoundException e) { + throw new WrappedException(e); + } + } + } +}
diff --git a/org.eclipse.osbp.runtime.emf/.project b/org.eclipse.osbp.runtime.emf/.project new file mode 100644 index 0000000..71ca391 --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/.project
@@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.emf</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.emf/LICENSE.txt b/org.eclipse.osbp.runtime.emf/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.emf/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.emf/META-INF/MANIFEST.MF new file mode 100644 index 0000000..814d16b --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.emf +Bundle-SymbolicName: org.eclipse.osbp.runtime.emf +Bundle-Vendor: Eclipse OSBP +Bundle-Version: 0.9.0.qualifier +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: org.eclipse.emf.common, + org.eclipse.emf.ecore +Export-Package: org.eclipse.osbp.runtime.emf.change, + org.eclipse.osbp.runtime.emf.edit.commands
diff --git a/org.eclipse.osbp.runtime.emf/about.html b/org.eclipse.osbp.runtime.emf/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.emf/about.ini b/org.eclipse.osbp.runtime.emf/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.emf/about.mappings b/org.eclipse.osbp.runtime.emf/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.emf/about.properties b/org.eclipse.osbp.runtime.emf/about.properties new file mode 100644 index 0000000..d35ea48 --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.emf + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.emf/build.properties b/org.eclipse.osbp.runtime.emf/build.properties new file mode 100644 index 0000000..a8c17c3 --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/build.properties
@@ -0,0 +1,6 @@ +source.. = src/ +output.. = bin/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + LICENSE.txt +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.emf/pom.xml b/org.eclipse.osbp.runtime.emf/pom.xml new file mode 100644 index 0000000..311ba1f --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.emf</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.emf/src/org/eclipse/osbp/runtime/emf/change/ChangedRecorder.java b/org.eclipse.osbp.runtime.emf/src/org/eclipse/osbp/runtime/emf/change/ChangedRecorder.java new file mode 100644 index 0000000..6bd4b98 --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/src/org/eclipse/osbp/runtime/emf/change/ChangedRecorder.java
@@ -0,0 +1,178 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.emf.change; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.util.EContentAdapter; + +/** + * Implementation of {@link EContentAdapter} that records all notifications. And + * implements logic to {@link #undo()} and {@link #redo()} the changes. + */ +public class ChangedRecorder extends EContentAdapter { + + private final Notifier notifier; + + private List<Notification> notifications = new ArrayList<Notification>(); + + public ChangedRecorder(Notifier notifier) { + super(); + this.notifier = notifier; + } + + /** + * Starts the recording. + */ + public void start() { + setTarget(notifier); + } + + /** + * Stops the recording. + */ + public void stop() { + unsetTarget(notifier); + } + + /** + * Returns all notifications recorded. + * + * @return + */ + public List<Notification> getNotifications() { + return notifications; + } + + @Override + public void notifyChanged(Notification notification) { + super.notifyChanged(notification); + + if (notification.isTouch()) { + return; + } + + if (notification.getEventType() == Notification.REMOVING_ADAPTER) { + return; + } + + if (notification.getEventType() == Notification.RESOLVE) { + return; + } + + notifications.add(notification); + } + + /** + * Undos all notifications. + */ + public void undo() { + for (int i = notifications.size() - 1; i >= 0; i--) { + Notification change = notifications.get(i); + undo(change); + } + } + + /** + * Redos all notifications. + */ + public void redo() { + for (int i = 0; i < notifications.size(); i++) { + Notification change = notifications.get(i); + redo(change); + } + } + + @SuppressWarnings("unchecked") + protected void undo(Notification change) { + EObject notifier = (EObject) change.getNotifier(); + switch (change.getEventType()) { + case Notification.ADD: { + List<Object> list = (List<Object>) notifier + .eGet((EStructuralFeature) change.getFeature()); + list.remove(change.getNewValue()); + } + break; + case Notification.ADD_MANY: + throw new IllegalStateException("Implement me"); + case Notification.MOVE: + throw new IllegalStateException("Implement me"); + case Notification.REMOVE: { + List<Object> list = (List<Object>) notifier + .eGet((EStructuralFeature) change.getFeature()); + if (change.getPosition() > 0) { + list.add(change.getPosition(), change.getOldValue()); + } else { + list.add(change.getOldValue()); + } + } + break; + case Notification.REMOVE_MANY: + throw new IllegalStateException("Implement me"); + case Notification.SET: { + Object value = change.getOldValue(); + notifier.eSet((EStructuralFeature) change.getFeature(), value); + } + break; + case Notification.UNSET: { + Object value = change.getOldValue(); + notifier.eSet((EStructuralFeature) change.getFeature(), value); + } + break; + } + } + + @SuppressWarnings("unchecked") + protected void redo(Notification change) { + EObject notifier = (EObject) change.getNotifier(); + switch (change.getEventType()) { + case Notification.ADD: { + List<Object> list = (List<Object>) notifier + .eGet((EStructuralFeature) change.getFeature()); + if (change.getPosition() > 0) { + list.add(change.getPosition(), change.getNewValue()); + } else { + list.add(change.getNewValue()); + } + } + break; + case Notification.ADD_MANY: + throw new IllegalStateException("Implement me"); + case Notification.MOVE: + throw new IllegalStateException("Implement me"); + case Notification.REMOVE: { + List<Object> list = (List<Object>) notifier + .eGet((EStructuralFeature) change.getFeature()); + list.remove(change.getOldValue()); + } + break; + case Notification.REMOVE_MANY: + throw new IllegalStateException("Implement me"); + case Notification.SET: { + Object value = change.getNewValue(); + notifier.eSet((EStructuralFeature) change.getFeature(), value); + } + break; + case Notification.UNSET: { + notifier.eUnset((EStructuralFeature) change.getFeature()); + } + break; + } + } +}
diff --git a/org.eclipse.osbp.runtime.emf/src/org/eclipse/osbp/runtime/emf/edit/commands/ChangeCommand.java b/org.eclipse.osbp.runtime.emf/src/org/eclipse/osbp/runtime/emf/edit/commands/ChangeCommand.java new file mode 100644 index 0000000..5d260f1 --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/src/org/eclipse/osbp/runtime/emf/edit/commands/ChangeCommand.java
@@ -0,0 +1,68 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.emf.edit.commands; + +import org.eclipse.emf.common.command.AbstractCommand; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.osbp.runtime.emf.change.ChangedRecorder; + +/** + * Uses the {@link ChangeCommand} to record notifications. + */ +public abstract class ChangeCommand extends AbstractCommand { + + private Resource resource; + private ChangedRecorder recorder; + + public ChangeCommand(String name, Resource resource) { + super(name); + this.resource = resource; + } + + @Override + public void execute() { + recorder.start(); + + doExecute(); + + recorder.stop(); + } + + /** + * Execute your operations. + */ + protected abstract void doExecute(); + + @Override + public void redo() { + recorder.redo(); + } + + @Override + protected boolean prepare() { + recorder = new ChangedRecorder(resource); + return true; + } + + @Override + public void undo() { + recorder.undo(); + } + + @Override + public boolean canUndo() { + return super.canUndo(); + } + +}
diff --git a/org.eclipse.osbp.runtime.emf/src/org/eclipse/osbp/runtime/emf/edit/commands/SimpleCommand.java b/org.eclipse.osbp.runtime.emf/src/org/eclipse/osbp/runtime/emf/edit/commands/SimpleCommand.java new file mode 100644 index 0000000..7008300 --- /dev/null +++ b/org.eclipse.osbp.runtime.emf/src/org/eclipse/osbp/runtime/emf/edit/commands/SimpleCommand.java
@@ -0,0 +1,63 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.emf.edit.commands; + +import org.eclipse.emf.common.command.AbstractCommand; + +/** + * Uses the {@link SimpleCommand} to record notifications. + */ +public abstract class SimpleCommand extends AbstractCommand { + + public SimpleCommand(String name) { + super(name); + } + + @Override + public void execute() { + doExecute(); + } + + @Override + public void redo() { + doRedo(); + } + + @Override + protected boolean prepare() { + return true; + } + + @Override + public void undo() { + doUndo(); + } + + @Override + public boolean canUndo() { + return true; + } + + protected abstract void doExecute(); + + /** + * Override if required. + */ + protected void doRedo() { + doExecute(); + } + + protected abstract void doUndo(); + +}
diff --git a/org.eclipse.osbp.runtime.event/.project b/org.eclipse.osbp.runtime.event/.project new file mode 100644 index 0000000..62be056 --- /dev/null +++ b/org.eclipse.osbp.runtime.event/.project
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.event</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.event/LICENSE.txt b/org.eclipse.osbp.runtime.event/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.event/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.event/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.event/META-INF/MANIFEST.MF new file mode 100644 index 0000000..bcdeed9 --- /dev/null +++ b/org.eclipse.osbp.runtime.event/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.event +Bundle-Vendor: Eclipse OSBP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-SymbolicName: org.eclipse.osbp.runtime.event +Bundle-Version: 0.9.0.qualifier +Import-Package: org.osgi.framework;version="1.8.0", + org.osgi.service.component;version="1.2.2", + org.osgi.service.component.annotations;version="1.2.0", + org.osgi.service.event;version="1.3.0", + org.osgi.service.prefs, + org.slf4j;version="1.7.2" +Bundle-ActivationPolicy: lazy +Service-Component: OSGI-INF/org.eclipse.osbp.runtime.event.EventBroker.xml +Require-Bundle: org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)"
diff --git a/org.eclipse.osbp.runtime.event/OSGI-INF/org.eclipse.osbp.runtime.event.EventBroker.xml b/org.eclipse.osbp.runtime.event/OSGI-INF/org.eclipse.osbp.runtime.event.EventBroker.xml new file mode 100644 index 0000000..102ea74 --- /dev/null +++ b/org.eclipse.osbp.runtime.event/OSGI-INF/org.eclipse.osbp.runtime.event.EventBroker.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" deactivate="deactivate" name="org.eclipse.osbp.runtime.event.EventBroker"> + <implementation class="org.eclipse.osbp.runtime.event.EventBroker"/> + <service> + <provide interface="org.eclipse.osbp.runtime.common.event.IEventBroker"/> + </service> + <reference bind="bindEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static" unbind="unbindEventAdmin"/> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.event/about.html b/org.eclipse.osbp.runtime.event/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.event/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.event/about.ini b/org.eclipse.osbp.runtime.event/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.event/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.event/about.mappings b/org.eclipse.osbp.runtime.event/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.event/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.event/about.properties b/org.eclipse.osbp.runtime.event/about.properties new file mode 100644 index 0000000..a1e1d1c --- /dev/null +++ b/org.eclipse.osbp.runtime.event/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.event + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.event/build.properties b/org.eclipse.osbp.runtime.event/build.properties new file mode 100644 index 0000000..e79b84a --- /dev/null +++ b/org.eclipse.osbp.runtime.event/build.properties
@@ -0,0 +1,9 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + OSGI-INF/,\ + .project,\ + .classpath,\ + LICENSE.txt +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.event/pom.xml b/org.eclipse.osbp.runtime.event/pom.xml new file mode 100644 index 0000000..cf56cb7 --- /dev/null +++ b/org.eclipse.osbp.runtime.event/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.event</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.event/src/org/eclipse/osbp/runtime/event/EventBroker.java b/org.eclipse.osbp.runtime.event/src/org/eclipse/osbp/runtime/event/EventBroker.java new file mode 100644 index 0000000..33ace05 --- /dev/null +++ b/org.eclipse.osbp.runtime.event/src/org/eclipse/osbp/runtime/event/EventBroker.java
@@ -0,0 +1,149 @@ +/******************************************************************************* + * Copyright (c) 2009, 2013 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + * Florian Pirchner - adjustments to osbp code + *******************************************************************************/ +package org.eclipse.osbp.runtime.event; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Dictionary; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Map; + +import org.eclipse.osbp.runtime.common.event.IEventBroker; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +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.component.annotations.Reference; +import org.osgi.service.component.annotations.ReferenceCardinality; +import org.osgi.service.event.Event; +import org.osgi.service.event.EventAdmin; +import org.osgi.service.event.EventConstants; +import org.osgi.service.event.EventHandler; + +@Component +public class EventBroker implements IEventBroker { + + // private static final Logger LOGGER = LoggerFactory + // .getLogger(EventBroker.class); + + // TBD synchronization + private Map<EventHandler, Collection<ServiceRegistration<?>>> registrations = new HashMap<EventHandler, Collection<ServiceRegistration<?>>>(); + + private EventAdmin eventAdmin; + + private ComponentContext context; + + public EventBroker() { + // placeholder + } + + @Activate + protected void activate(ComponentContext context) { + this.context = context; + } + + @Deactivate + protected void deactivate(ComponentContext context) { + Collection<Collection<ServiceRegistration<?>>> values = new ArrayList<Collection<ServiceRegistration<?>>>( + registrations.values()); + registrations.clear(); + for (Collection<ServiceRegistration<?>> handled : values) { + for (ServiceRegistration<?> registration : handled) { + registration.unregister(); + } + } + + this.context = null; + } + + @Reference(cardinality = ReferenceCardinality.MANDATORY, unbind = "unbindEventAdmin") + protected void bindEventAdmin(EventAdmin eventAdmin) { + this.eventAdmin = eventAdmin; + } + + protected void unbindEventAdmin(EventAdmin eventAdmin) { + this.eventAdmin = null; + } + + @Override + public boolean send(String topic, Object data) { + Event event = constructEvent(topic, data); + eventAdmin.sendEvent(event); + return true; + } + + @Override + public boolean post(String topic, Object data) { + Event event = constructEvent(topic, data); + eventAdmin.postEvent(event); + return true; + } + + @SuppressWarnings("unchecked") + private Event constructEvent(String topic, Object data) { + Event event; + if (data instanceof Dictionary<?, ?>) { + event = new Event(topic, (Dictionary<String, ?>) data); + } else if (data instanceof Map<?, ?>) { + event = new Event(topic, (Map<String, ?>) data); + } else { + Dictionary<String, Object> d = new Hashtable<String, Object>(2); + d.put(EventConstants.EVENT_TOPIC, topic); + if (data != null) + d.put(IEventBroker.DATA, data); + event = new Event(topic, d); + } + return event; + } + + @Override + public boolean subscribe(String topic, EventHandler eventHandler) { + return subscribe(topic, null, eventHandler, false); + } + + @Override + public boolean subscribe(String topic, String filter, + EventHandler eventHandler, boolean headless) { + BundleContext bundleContext = context.getBundleContext(); + String[] topics = new String[] { topic }; + Dictionary<String, Object> d = new Hashtable<String, Object>(); + d.put(EventConstants.EVENT_TOPIC, topics); + if (filter != null) { + d.put(EventConstants.EVENT_FILTER, filter); + } + ServiceRegistration<?> registration = bundleContext.registerService( + EventHandler.class.getName(), eventHandler, d); + Collection<ServiceRegistration<?>> handled = registrations + .get(eventHandler); + if (handled == null) { + registrations.put(eventHandler, + handled = new ArrayList<ServiceRegistration<?>>()); + } + handled.add(registration); + return true; + } + + @Override + public boolean unsubscribe(EventHandler eventHandler) { + Collection<ServiceRegistration<?>> handled = registrations + .remove(eventHandler); + if (handled == null || handled.isEmpty()) + return false; + for (ServiceRegistration<?> r : handled) { + r.unregister(); + } + return true; + } +}
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/.project b/org.eclipse.osbp.runtime.feature.allinone.testframework/.project new file mode 100644 index 0000000..195c33d --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/.project
@@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.feature.allinone.testframework</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/LICENSE.txt b/org.eclipse.osbp.runtime.feature.allinone.testframework/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/build.properties b/org.eclipse.osbp.runtime.feature.allinone.testframework/build.properties new file mode 100644 index 0000000..9234d19 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/build.properties
@@ -0,0 +1,2 @@ +bin.includes = license.html, feature.xml,\ + feature.properties
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/epl-v10.html b/org.eclipse.osbp.runtime.feature.allinone.testframework/epl-v10.html new file mode 100644 index 0000000..b398acc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/epl-v10.html
@@ -0,0 +1,259 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!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"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>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.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">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.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"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.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">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;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">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.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>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.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>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.</p> + +<p>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.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>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.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>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.</p> + +<p><b>7. GENERAL</b></p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/feature.properties b/org.eclipse.osbp.runtime.feature.allinone.testframework/feature.properties new file mode 100644 index 0000000..c5eaebd --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/feature.properties
@@ -0,0 +1,170 @@ +############################################################################### +# Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Florian Pirchner - initial API and implementation +############################################################################### +# feature.properties +# contains externalized strings for feature.xml +# "%foo" in feature.xml corresponds to the key "foo" in this file +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file should be translated. + +# "featureName" property - name of the feature +featureName = OSBP All-in-one test framework feature (not IDE!) + +# "providerName" property - name of the company that provides the feature +providerName=Eclipse OSBP + +# "description" property - description of the feature +description=Contains all required components for testing within the osbp runtime.\n\ +Do NOT install into IDE! + +# "updateSiteName" property - label for the update site +updateSiteName= + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +February 1, 2011\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ##########################################
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/feature.xml b/org.eclipse.osbp.runtime.feature.allinone.testframework/feature.xml new file mode 100644 index 0000000..4633e1e --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/feature.xml
@@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<feature + id="org.eclipse.osbp.runtime.feature.allinone.testframework" + label="%featureName" + version="0.9.0.qualifier" + provider-name="%providerName"> + + <description> + %description + </description> + + <copyright> + %copyright + </copyright> + + <license url="%licenseURL"> + %license + </license> + + <includes id="org.eclipse.osbp.runtime.feature.allinone" version="0.9.1.qualifier"/> + + <includes id="org.eclipse.osbp.dependencies.feature.assert-utilities" version="0.9.1.qualifier"/> + + <plugin + id="org.junit" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> +</feature>
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/license.html b/org.eclipse.osbp.runtime.feature.allinone.testframework/license.html new file mode 100644 index 0000000..6e579a5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/license.html
@@ -0,0 +1,164 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>February 1, 2011</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse + Foundation is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also + available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, +documentation and other files maintained in the Eclipse Foundation +source code + repository ("Repository") in software modules ("Modules") and made +available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to +facilitate delivering, extending, and upgrading the Content. Typical +modules may include plug-ins ("Plug-ins"), plug-in fragments +("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or +Fragments and associated material. Each Feature may be packaged as a +sub-directory in a directory named "features". Within a Feature, files +named "feature.xml" may contain a list of the names and version numbers +of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included +Features"). Within a Feature, files named "feature.xml" may contain a +list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be +contained in files named "about.html" ("Abouts"). The terms and +conditions governing Features and +Included Features should be contained in files named "license.html" +("Feature Licenses"). Abouts and Feature Licenses may be located in any + directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is +installed using the Provisioning Technology (as defined below), you must + agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the +Feature Update License should either provide you with the terms and +conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be +found in the "license" property of files named "feature.properties" +found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the +terms and conditions (or references to such terms and conditions) that +govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. + SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND +CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, +or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions +govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, +examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of +allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This +capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about +packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install + Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to + be presented to, and accepted by, the users of the Provisioning +Technology + in accordance with the Specification. By using Provisioning +Technology in such a manner and making it available in accordance with +the + Specification, you further acknowledge your agreement to, and the +acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in +which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, +extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology +may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user +the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable +Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable +Software Agreement must inform the user of the terms and conditions that + govern + the Installable Software and must solicit acceptance by the end +user in the manner prescribed in such Installable Software Agreement. +Upon such + indication of agreement by the user, the provisioning Technology +will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are + currently may have restrictions on the import, possession, and use, +and/or re-export to + another country, of encryption software. BEFORE using any encryption +software, please check the country's laws, regulations and policies +concerning the import, + possession, or use, and re-export of encryption software, to see if +this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/pom.xml b/org.eclipse.osbp.runtime.feature.allinone.testframework/pom.xml new file mode 100644 index 0000000..a5d1c9b --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/pom.xml
@@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.feature.allinone.testframework</artifactId> + <packaging>eclipse-feature</packaging> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-source-feature-plugin</artifactId> + <version>${tychoExtrasVersion}</version> + <executions> + <execution> + <id>source-feature</id> + <phase>package</phase> + <goals> + <goal>source-feature</goal> + </goals> + </execution> + </executions> + <configuration> + <labelSuffix> (source)</labelSuffix> + <excludes> + <feature id="org.eclipse.osbp.dependencies.feature.assert-utilities"/> + </excludes> + </configuration> + </plugin> + <plugin> + <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 + is not fixed --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <id>attached-p2-metadata</id> + <phase>package</phase> + <goals> + <goal>p2-metadata</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + </dependency> + <dependency> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.feature.allinone</artifactId> + <version>0.9.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.eclipse.osbp.dependencies</groupId> + <artifactId>org.eclipse.osbp.dependencies.feature.assert-utilities</artifactId> + <version>0.9.0-SNAPSHOT</version> + </dependency> + + </dependencies> +</project>
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/src/main/javadoc/README.txt b/org.eclipse.osbp.runtime.feature.allinone.testframework/src/main/javadoc/README.txt new file mode 100644 index 0000000..831da7e --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/src/main/javadoc/README.txt
@@ -0,0 +1 @@ +Resource folder for javadoc resources. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.allinone.testframework/src/overview.html b/org.eclipse.osbp.runtime.feature.allinone.testframework/src/overview.html new file mode 100644 index 0000000..bd17035 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.allinone.testframework/src/overview.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> + <HEAD> + <TITLE>OSBP .... Feature</TITLE> + </HEAD> + <BODY> + The <b>OSBP .... Feature</b> implements ... + + </BODY> +</HTML> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.common/.project b/org.eclipse.osbp.runtime.feature.common/.project new file mode 100644 index 0000000..24dbbab --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/.project
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.feature.common</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.feature.common/LICENSE.txt b/org.eclipse.osbp.runtime.feature.common/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.common/build.properties b/org.eclipse.osbp.runtime.feature.common/build.properties new file mode 100644 index 0000000..9234d19 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/build.properties
@@ -0,0 +1,2 @@ +bin.includes = license.html, feature.xml,\ + feature.properties
diff --git a/org.eclipse.osbp.runtime.feature.common/epl-v10.html b/org.eclipse.osbp.runtime.feature.common/epl-v10.html new file mode 100644 index 0000000..b398acc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/epl-v10.html
@@ -0,0 +1,259 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!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"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>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.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">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.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"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.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">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;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">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.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>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.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>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.</p> + +<p>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.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>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.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>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.</p> + +<p><b>7. GENERAL</b></p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.common/feature.properties b/org.eclipse.osbp.runtime.feature.common/feature.properties new file mode 100644 index 0000000..7c7ad72 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/feature.properties
@@ -0,0 +1,169 @@ +############################################################################### +# Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Florian Pirchner - initial API and implementation +############################################################################### +# feature.properties +# contains externalized strings for feature.xml +# "%foo" in feature.xml corresponds to the key "foo" in this file +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file should be translated. + +# "featureName" property - name of the feature +featureName = Common runtime features + +# "providerName" property - name of the company that provides the feature +providerName=Eclipse OSBP + +# "description" property - description of the feature +description=Contains base features for the whole osbp runtime. + +# "updateSiteName" property - label for the update site +updateSiteName= + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +February 1, 2011\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ##########################################
diff --git a/org.eclipse.osbp.runtime.feature.common/feature.xml b/org.eclipse.osbp.runtime.feature.common/feature.xml new file mode 100644 index 0000000..1b1e145 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/feature.xml
@@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<feature + id="org.eclipse.osbp.runtime.feature.common" + label="%featureName" + version="0.9.0.qualifier" + provider-name="%providerName"> + + <description> + %description + </description> + + <copyright> + %copyright + </copyright> + + <license url="%licenseURL"> + %license + </license> + + <plugin + id="org.eclipse.osbp.runtime.common" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.osbp.runtime.emf" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.osbp.runtime.memento" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.osbp.runtime.designer.api" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> +</feature>
diff --git a/org.eclipse.osbp.runtime.feature.common/license.html b/org.eclipse.osbp.runtime.feature.common/license.html new file mode 100644 index 0000000..6e579a5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/license.html
@@ -0,0 +1,164 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>February 1, 2011</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse + Foundation is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also + available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, +documentation and other files maintained in the Eclipse Foundation +source code + repository ("Repository") in software modules ("Modules") and made +available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to +facilitate delivering, extending, and upgrading the Content. Typical +modules may include plug-ins ("Plug-ins"), plug-in fragments +("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or +Fragments and associated material. Each Feature may be packaged as a +sub-directory in a directory named "features". Within a Feature, files +named "feature.xml" may contain a list of the names and version numbers +of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included +Features"). Within a Feature, files named "feature.xml" may contain a +list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be +contained in files named "about.html" ("Abouts"). The terms and +conditions governing Features and +Included Features should be contained in files named "license.html" +("Feature Licenses"). Abouts and Feature Licenses may be located in any + directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is +installed using the Provisioning Technology (as defined below), you must + agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the +Feature Update License should either provide you with the terms and +conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be +found in the "license" property of files named "feature.properties" +found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the +terms and conditions (or references to such terms and conditions) that +govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. + SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND +CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, +or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions +govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, +examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of +allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This +capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about +packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install + Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to + be presented to, and accepted by, the users of the Provisioning +Technology + in accordance with the Specification. By using Provisioning +Technology in such a manner and making it available in accordance with +the + Specification, you further acknowledge your agreement to, and the +acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in +which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, +extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology +may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user +the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable +Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable +Software Agreement must inform the user of the terms and conditions that + govern + the Installable Software and must solicit acceptance by the end +user in the manner prescribed in such Installable Software Agreement. +Upon such + indication of agreement by the user, the provisioning Technology +will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are + currently may have restrictions on the import, possession, and use, +and/or re-export to + another country, of encryption software. BEFORE using any encryption +software, please check the country's laws, regulations and policies +concerning the import, + possession, or use, and re-export of encryption software, to see if +this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.common/pom.xml b/org.eclipse.osbp.runtime.feature.common/pom.xml new file mode 100644 index 0000000..f5078e8 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/pom.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.feature.common</artifactId> + <packaging>eclipse-feature</packaging> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-source-feature-plugin</artifactId> + <version>${tychoExtrasVersion}</version> + <executions> + <execution> + <id>source-feature</id> + <phase>package</phase> + <goals> + <goal>source-feature</goal> + </goals> + </execution> + </executions> + <configuration> + <labelSuffix> (source)</labelSuffix> + </configuration> + </plugin> + <plugin> + <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 + is not fixed --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <id>attached-p2-metadata</id> + <phase>package</phase> + <goals> + <goal>p2-metadata</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>javadoc-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project>
diff --git a/org.eclipse.osbp.runtime.feature.common/src/main/javadoc/README.txt b/org.eclipse.osbp.runtime.feature.common/src/main/javadoc/README.txt new file mode 100644 index 0000000..831da7e --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/src/main/javadoc/README.txt
@@ -0,0 +1 @@ +Resource folder for javadoc resources. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.common/src/overview.html b/org.eclipse.osbp.runtime.feature.common/src/overview.html new file mode 100644 index 0000000..bd17035 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.common/src/overview.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> + <HEAD> + <TITLE>OSBP .... Feature</TITLE> + </HEAD> + <BODY> + The <b>OSBP .... Feature</b> implements ... + + </BODY> +</HTML> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/.project b/org.eclipse.osbp.runtime.feature.datasource.provider/.project new file mode 100644 index 0000000..a37971f --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/.project
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.feature.datasource.provider</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/LICENSE.txt b/org.eclipse.osbp.runtime.feature.datasource.provider/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/build.properties b/org.eclipse.osbp.runtime.feature.datasource.provider/build.properties new file mode 100644 index 0000000..9d5dedc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/build.properties
@@ -0,0 +1,4 @@ +bin.includes = license.html, feature.xml,\ + feature.properties,\ + LICENSE.txt +src.includes = license.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/epl-v10.html b/org.eclipse.osbp.runtime.feature.datasource.provider/epl-v10.html new file mode 100644 index 0000000..b398acc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/epl-v10.html
@@ -0,0 +1,259 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!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"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>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.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">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.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"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.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">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;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">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.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>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.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>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.</p> + +<p>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.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>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.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>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.</p> + +<p><b>7. GENERAL</b></p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/feature.properties b/org.eclipse.osbp.runtime.feature.datasource.provider/feature.properties new file mode 100644 index 0000000..982035f --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/feature.properties
@@ -0,0 +1,169 @@ +############################################################################### +# Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Florian Pirchner - initial API and implementation +############################################################################### +# feature.properties +# contains externalized strings for feature.xml +# "%foo" in feature.xml corresponds to the key "foo" in this file +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file should be translated. + +# "featureName" property - name of the feature +featureName = OSBP runtime: Datasource Provider with Config Admin + +# "providerName" property - name of the company that provides the feature +providerName=Eclipse OSBP + +# "description" property - description of the feature +description=Provides a datasource based on Config Admin configurations. And provides a IDataSourceService for fast access. + +# "updateSiteName" property - label for the update site +updateSiteName= + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +February 1, 2011\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ##########################################
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/feature.xml b/org.eclipse.osbp.runtime.feature.datasource.provider/feature.xml new file mode 100644 index 0000000..9a9ed70 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/feature.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<feature + id="org.eclipse.osbp.runtime.feature.datasource.provider" + label="%featureName" + version="0.9.0.qualifier" + provider-name="%providerName"> + + <description> + %description + </description> + + <copyright> + %copyright + </copyright> + + <license url="%licenseURL"> + %license + </license> + + <plugin + id="org.eclipse.osbp.runtime.datasource.provider" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + +</feature>
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/license.html b/org.eclipse.osbp.runtime.feature.datasource.provider/license.html new file mode 100644 index 0000000..6e579a5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/license.html
@@ -0,0 +1,164 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>February 1, 2011</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse + Foundation is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also + available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, +documentation and other files maintained in the Eclipse Foundation +source code + repository ("Repository") in software modules ("Modules") and made +available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to +facilitate delivering, extending, and upgrading the Content. Typical +modules may include plug-ins ("Plug-ins"), plug-in fragments +("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or +Fragments and associated material. Each Feature may be packaged as a +sub-directory in a directory named "features". Within a Feature, files +named "feature.xml" may contain a list of the names and version numbers +of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included +Features"). Within a Feature, files named "feature.xml" may contain a +list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be +contained in files named "about.html" ("Abouts"). The terms and +conditions governing Features and +Included Features should be contained in files named "license.html" +("Feature Licenses"). Abouts and Feature Licenses may be located in any + directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is +installed using the Provisioning Technology (as defined below), you must + agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the +Feature Update License should either provide you with the terms and +conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be +found in the "license" property of files named "feature.properties" +found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the +terms and conditions (or references to such terms and conditions) that +govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. + SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND +CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, +or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions +govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, +examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of +allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This +capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about +packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install + Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to + be presented to, and accepted by, the users of the Provisioning +Technology + in accordance with the Specification. By using Provisioning +Technology in such a manner and making it available in accordance with +the + Specification, you further acknowledge your agreement to, and the +acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in +which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, +extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology +may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user +the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable +Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable +Software Agreement must inform the user of the terms and conditions that + govern + the Installable Software and must solicit acceptance by the end +user in the manner prescribed in such Installable Software Agreement. +Upon such + indication of agreement by the user, the provisioning Technology +will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are + currently may have restrictions on the import, possession, and use, +and/or re-export to + another country, of encryption software. BEFORE using any encryption +software, please check the country's laws, regulations and policies +concerning the import, + possession, or use, and re-export of encryption software, to see if +this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/pom.xml b/org.eclipse.osbp.runtime.feature.datasource.provider/pom.xml new file mode 100644 index 0000000..4b40f3f --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/pom.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.feature.datasource.provider</artifactId> + <packaging>eclipse-feature</packaging> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-source-feature-plugin</artifactId> + <version>${tychoExtrasVersion}</version> + <executions> + <execution> + <id>source-feature</id> + <phase>package</phase> + <goals> + <goal>source-feature</goal> + </goals> + </execution> + </executions> + <configuration> + <labelSuffix> (source)</labelSuffix> + </configuration> + </plugin> + <plugin> + <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 + is not fixed --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <id>attached-p2-metadata</id> + <phase>package</phase> + <goals> + <goal>p2-metadata</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>javadoc-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project>
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/src/main/javadoc/README.txt b/org.eclipse.osbp.runtime.feature.datasource.provider/src/main/javadoc/README.txt new file mode 100644 index 0000000..831da7e --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/src/main/javadoc/README.txt
@@ -0,0 +1 @@ +Resource folder for javadoc resources. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.datasource.provider/src/overview.html b/org.eclipse.osbp.runtime.feature.datasource.provider/src/overview.html new file mode 100644 index 0000000..bd17035 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.datasource.provider/src/overview.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> + <HEAD> + <TITLE>OSBP .... Feature</TITLE> + </HEAD> + <BODY> + The <b>OSBP .... Feature</b> implements ... + + </BODY> +</HTML> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/.project b/org.eclipse.osbp.runtime.feature.e4eventmanager/.project new file mode 100644 index 0000000..df6cf6c --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/.project
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.feature.e4eventmanager</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/LICENSE.txt b/org.eclipse.osbp.runtime.feature.e4eventmanager/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/build.properties b/org.eclipse.osbp.runtime.feature.e4eventmanager/build.properties new file mode 100644 index 0000000..9d5dedc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/build.properties
@@ -0,0 +1,4 @@ +bin.includes = license.html, feature.xml,\ + feature.properties,\ + LICENSE.txt +src.includes = license.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/epl-v10.html b/org.eclipse.osbp.runtime.feature.e4eventmanager/epl-v10.html new file mode 100644 index 0000000..b398acc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/epl-v10.html
@@ -0,0 +1,259 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!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"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>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.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">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.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"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.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">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;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">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.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>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.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>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.</p> + +<p>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.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>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.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>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.</p> + +<p><b>7. GENERAL</b></p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/feature.properties b/org.eclipse.osbp.runtime.feature.e4eventmanager/feature.properties new file mode 100644 index 0000000..e61a607 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/feature.properties
@@ -0,0 +1,169 @@ +############################################################################### +# Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Florian Pirchner - initial API and implementation +############################################################################### +# feature.properties +# contains externalized strings for feature.xml +# "%foo" in feature.xml corresponds to the key "foo" in this file +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file should be translated. + +# "featureName" property - name of the feature +featureName = OSBP runtime: e4 event manager + +# "providerName" property - name of the company that provides the feature +providerName=Eclipse OSBP + +# "description" property - description of the feature +description=Contains base features for the whole osbp runtime. + +# "updateSiteName" property - label for the update site +updateSiteName= + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +February 1, 2011\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ##########################################
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/feature.xml b/org.eclipse.osbp.runtime.feature.e4eventmanager/feature.xml new file mode 100644 index 0000000..cbd2795 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/feature.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<feature + id="org.eclipse.osbp.runtime.feature.e4eventmanager" + label="%featureName" + version="0.9.0.qualifier" + provider-name="%providerName"> + + <description> + %description + </description> + + <copyright> + %copyright + </copyright> + + <license url="%licenseURL"> + %license + </license> + + <plugin + id="org.eclipse.osbp.runtime.event" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + +</feature>
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/license.html b/org.eclipse.osbp.runtime.feature.e4eventmanager/license.html new file mode 100644 index 0000000..6e579a5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/license.html
@@ -0,0 +1,164 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>February 1, 2011</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse + Foundation is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also + available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, +documentation and other files maintained in the Eclipse Foundation +source code + repository ("Repository") in software modules ("Modules") and made +available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to +facilitate delivering, extending, and upgrading the Content. Typical +modules may include plug-ins ("Plug-ins"), plug-in fragments +("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or +Fragments and associated material. Each Feature may be packaged as a +sub-directory in a directory named "features". Within a Feature, files +named "feature.xml" may contain a list of the names and version numbers +of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included +Features"). Within a Feature, files named "feature.xml" may contain a +list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be +contained in files named "about.html" ("Abouts"). The terms and +conditions governing Features and +Included Features should be contained in files named "license.html" +("Feature Licenses"). Abouts and Feature Licenses may be located in any + directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is +installed using the Provisioning Technology (as defined below), you must + agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the +Feature Update License should either provide you with the terms and +conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be +found in the "license" property of files named "feature.properties" +found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the +terms and conditions (or references to such terms and conditions) that +govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. + SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND +CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, +or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions +govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, +examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of +allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This +capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about +packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install + Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to + be presented to, and accepted by, the users of the Provisioning +Technology + in accordance with the Specification. By using Provisioning +Technology in such a manner and making it available in accordance with +the + Specification, you further acknowledge your agreement to, and the +acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in +which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, +extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology +may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user +the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable +Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable +Software Agreement must inform the user of the terms and conditions that + govern + the Installable Software and must solicit acceptance by the end +user in the manner prescribed in such Installable Software Agreement. +Upon such + indication of agreement by the user, the provisioning Technology +will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are + currently may have restrictions on the import, possession, and use, +and/or re-export to + another country, of encryption software. BEFORE using any encryption +software, please check the country's laws, regulations and policies +concerning the import, + possession, or use, and re-export of encryption software, to see if +this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/pom.xml b/org.eclipse.osbp.runtime.feature.e4eventmanager/pom.xml new file mode 100644 index 0000000..7d689dd --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/pom.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.feature.e4eventmanager</artifactId> + <packaging>eclipse-feature</packaging> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-source-feature-plugin</artifactId> + <version>${tychoExtrasVersion}</version> + <executions> + <execution> + <id>source-feature</id> + <phase>package</phase> + <goals> + <goal>source-feature</goal> + </goals> + </execution> + </executions> + <configuration> + <labelSuffix> (source)</labelSuffix> + </configuration> + </plugin> + <plugin> + <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 + is not fixed --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <id>attached-p2-metadata</id> + <phase>package</phase> + <goals> + <goal>p2-metadata</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>javadoc-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project>
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/src/main/javadoc/README.txt b/org.eclipse.osbp.runtime.feature.e4eventmanager/src/main/javadoc/README.txt new file mode 100644 index 0000000..831da7e --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/src/main/javadoc/README.txt
@@ -0,0 +1 @@ +Resource folder for javadoc resources. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.e4eventmanager/src/overview.html b/org.eclipse.osbp.runtime.feature.e4eventmanager/src/overview.html new file mode 100644 index 0000000..bd17035 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.e4eventmanager/src/overview.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> + <HEAD> + <TITLE>OSBP .... Feature</TITLE> + </HEAD> + <BODY> + The <b>OSBP .... Feature</b> implements ... + + </BODY> +</HTML> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/.project b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/.project new file mode 100644 index 0000000..99977e1 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/.project
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.feature.eclipselink.core.fragment</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/LICENSE.txt b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/build.properties b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/build.properties new file mode 100644 index 0000000..9d5dedc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/build.properties
@@ -0,0 +1,4 @@ +bin.includes = license.html, feature.xml,\ + feature.properties,\ + LICENSE.txt +src.includes = license.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/epl-v10.html b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/epl-v10.html new file mode 100644 index 0000000..b398acc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/epl-v10.html
@@ -0,0 +1,259 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!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"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>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.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">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.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"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.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">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;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">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.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>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.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>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.</p> + +<p>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.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>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.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>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.</p> + +<p><b>7. GENERAL</b></p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/feature.properties b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/feature.properties new file mode 100644 index 0000000..a41564d --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/feature.properties
@@ -0,0 +1,169 @@ +############################################################################### +# Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Florian Pirchner - initial API and implementation +############################################################################### +# feature.properties +# contains externalized strings for feature.xml +# "%foo" in feature.xml corresponds to the key "foo" in this file +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file should be translated. + +# "featureName" property - name of the feature +featureName = Feature for Eclipselink core fragment + +# "providerName" property - name of the company that provides the feature +providerName=Eclipse OSBP + +# "description" property - description of the feature +description=Contains base features for the whole osbp runtime. + +# "updateSiteName" property - label for the update site +updateSiteName= + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +February 1, 2011\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ##########################################
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/feature.xml b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/feature.xml new file mode 100644 index 0000000..2382144 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/feature.xml
@@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<feature + id="org.eclipse.osbp.runtime.feature.eclipselink.core.fragment" + label="%featureName" + version="0.9.0.qualifier" + provider-name="%providerName"> + + <description> + %description + </description> + + <copyright> + %copyright + </copyright> + + <license url="%licenseURL"> + %license + </license> + + <plugin + id="org.apache.aries.transaction.manager" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.osbp.runtime.eclipselink.core.fragment" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + +</feature>
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/license.html b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/license.html new file mode 100644 index 0000000..6e579a5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/license.html
@@ -0,0 +1,164 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>February 1, 2011</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse + Foundation is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also + available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, +documentation and other files maintained in the Eclipse Foundation +source code + repository ("Repository") in software modules ("Modules") and made +available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to +facilitate delivering, extending, and upgrading the Content. Typical +modules may include plug-ins ("Plug-ins"), plug-in fragments +("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or +Fragments and associated material. Each Feature may be packaged as a +sub-directory in a directory named "features". Within a Feature, files +named "feature.xml" may contain a list of the names and version numbers +of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included +Features"). Within a Feature, files named "feature.xml" may contain a +list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be +contained in files named "about.html" ("Abouts"). The terms and +conditions governing Features and +Included Features should be contained in files named "license.html" +("Feature Licenses"). Abouts and Feature Licenses may be located in any + directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is +installed using the Provisioning Technology (as defined below), you must + agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the +Feature Update License should either provide you with the terms and +conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be +found in the "license" property of files named "feature.properties" +found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the +terms and conditions (or references to such terms and conditions) that +govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. + SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND +CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, +or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions +govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, +examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of +allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This +capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about +packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install + Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to + be presented to, and accepted by, the users of the Provisioning +Technology + in accordance with the Specification. By using Provisioning +Technology in such a manner and making it available in accordance with +the + Specification, you further acknowledge your agreement to, and the +acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in +which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, +extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology +may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user +the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable +Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable +Software Agreement must inform the user of the terms and conditions that + govern + the Installable Software and must solicit acceptance by the end +user in the manner prescribed in such Installable Software Agreement. +Upon such + indication of agreement by the user, the provisioning Technology +will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are + currently may have restrictions on the import, possession, and use, +and/or re-export to + another country, of encryption software. BEFORE using any encryption +software, please check the country's laws, regulations and policies +concerning the import, + possession, or use, and re-export of encryption software, to see if +this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/pom.xml b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/pom.xml new file mode 100644 index 0000000..eda9658 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/pom.xml
@@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.feature.eclipselink.core.fragment</artifactId> + <packaging>eclipse-feature</packaging> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-source-feature-plugin</artifactId> + <version>${tychoExtrasVersion}</version> + <executions> + <execution> + <id>source-feature</id> + <phase>package</phase> + <goals> + <goal>source-feature</goal> + </goals> + </execution> + </executions> + <configuration> + <labelSuffix> (source)</labelSuffix> + <excludes> + <plugin id="org.eclipse.persistence.core"/> + <plugin id="org.apache.aries.transaction.manager"/> + </excludes> + </configuration> + </plugin> + <plugin> + <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 + is not fixed --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <id>attached-p2-metadata</id> + <phase>package</phase> + <goals> + <goal>p2-metadata</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>javadoc-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project>
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/src/main/javadoc/README.txt b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/src/main/javadoc/README.txt new file mode 100644 index 0000000..831da7e --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/src/main/javadoc/README.txt
@@ -0,0 +1 @@ +Resource folder for javadoc resources. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/src/overview.html b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/src/overview.html new file mode 100644 index 0000000..bd17035 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.eclipselink.core.fragment/src/overview.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> + <HEAD> + <TITLE>OSBP .... Feature</TITLE> + </HEAD> + <BODY> + The <b>OSBP .... Feature</b> implements ... + + </BODY> +</HTML> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/.project b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/.project new file mode 100644 index 0000000..49d1bcd --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/.project
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.feature.ecore.bundlespace</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/LICENSE.txt b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/build.properties b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/build.properties new file mode 100644 index 0000000..9d5dedc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/build.properties
@@ -0,0 +1,4 @@ +bin.includes = license.html, feature.xml,\ + feature.properties,\ + LICENSE.txt +src.includes = license.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/epl-v10.html b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/epl-v10.html new file mode 100644 index 0000000..b398acc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/epl-v10.html
@@ -0,0 +1,259 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!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"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>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.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">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.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"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.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">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;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">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.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>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.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>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.</p> + +<p>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.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>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.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>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.</p> + +<p><b>7. GENERAL</b></p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/feature.properties b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/feature.properties new file mode 100644 index 0000000..a4a20a4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/feature.properties
@@ -0,0 +1,169 @@ +############################################################################### +# Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Florian Pirchner - initial API and implementation +############################################################################### +# feature.properties +# contains externalized strings for feature.xml +# "%foo" in feature.xml corresponds to the key "foo" in this file +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file should be translated. + +# "featureName" property - name of the feature +featureName = OSBP runtime: Bundlespace aware EcoreFactory + +# "providerName" property - name of the company that provides the feature +providerName=Eclipse OSBP + +# "description" property - description of the feature +description=Bundlespace aware EcoreFactory + +# "updateSiteName" property - label for the update site +updateSiteName= + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +February 1, 2011\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ##########################################
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/feature.xml b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/feature.xml new file mode 100644 index 0000000..2523749 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/feature.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<feature + id="org.eclipse.osbp.runtime.feature.ecore.bundlespace" + label="%featureName" + version="0.9.0.qualifier" + provider-name="%providerName"> + + <description> + %description + </description> + + <copyright> + %copyright + </copyright> + + <license url="%licenseURL"> + %license + </license> + + <plugin + id="org.eclipse.osbp.runtime.ecore.bundlespace" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + +</feature>
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/license.html b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/license.html new file mode 100644 index 0000000..6e579a5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/license.html
@@ -0,0 +1,164 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>February 1, 2011</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse + Foundation is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also + available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, +documentation and other files maintained in the Eclipse Foundation +source code + repository ("Repository") in software modules ("Modules") and made +available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to +facilitate delivering, extending, and upgrading the Content. Typical +modules may include plug-ins ("Plug-ins"), plug-in fragments +("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or +Fragments and associated material. Each Feature may be packaged as a +sub-directory in a directory named "features". Within a Feature, files +named "feature.xml" may contain a list of the names and version numbers +of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included +Features"). Within a Feature, files named "feature.xml" may contain a +list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be +contained in files named "about.html" ("Abouts"). The terms and +conditions governing Features and +Included Features should be contained in files named "license.html" +("Feature Licenses"). Abouts and Feature Licenses may be located in any + directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is +installed using the Provisioning Technology (as defined below), you must + agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the +Feature Update License should either provide you with the terms and +conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be +found in the "license" property of files named "feature.properties" +found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the +terms and conditions (or references to such terms and conditions) that +govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. + SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND +CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, +or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions +govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, +examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of +allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This +capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about +packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install + Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to + be presented to, and accepted by, the users of the Provisioning +Technology + in accordance with the Specification. By using Provisioning +Technology in such a manner and making it available in accordance with +the + Specification, you further acknowledge your agreement to, and the +acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in +which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, +extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology +may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user +the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable +Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable +Software Agreement must inform the user of the terms and conditions that + govern + the Installable Software and must solicit acceptance by the end +user in the manner prescribed in such Installable Software Agreement. +Upon such + indication of agreement by the user, the provisioning Technology +will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are + currently may have restrictions on the import, possession, and use, +and/or re-export to + another country, of encryption software. BEFORE using any encryption +software, please check the country's laws, regulations and policies +concerning the import, + possession, or use, and re-export of encryption software, to see if +this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/pom.xml b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/pom.xml new file mode 100644 index 0000000..41d47f8 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/pom.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.feature.ecore.bundlespace</artifactId> + <packaging>eclipse-feature</packaging> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-source-feature-plugin</artifactId> + <version>${tychoExtrasVersion}</version> + <executions> + <execution> + <id>source-feature</id> + <phase>package</phase> + <goals> + <goal>source-feature</goal> + </goals> + </execution> + </executions> + <configuration> + <labelSuffix> (source)</labelSuffix> + </configuration> + </plugin> + <plugin> + <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 + is not fixed --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <id>attached-p2-metadata</id> + <phase>package</phase> + <goals> + <goal>p2-metadata</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>javadoc-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project>
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/src/main/javadoc/README.txt b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/src/main/javadoc/README.txt new file mode 100644 index 0000000..831da7e --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/src/main/javadoc/README.txt
@@ -0,0 +1 @@ +Resource folder for javadoc resources. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.ecore.bundlespace/src/overview.html b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/src/overview.html new file mode 100644 index 0000000..bd17035 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.ecore.bundlespace/src/overview.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> + <HEAD> + <TITLE>OSBP .... Feature</TITLE> + </HEAD> + <BODY> + The <b>OSBP .... Feature</b> implements ... + + </BODY> +</HTML> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/.project b/org.eclipse.osbp.runtime.feature.jsr303.validation/.project new file mode 100644 index 0000000..6a96cbf --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/.project
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.feature.jsr303.validation</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/LICENSE.txt b/org.eclipse.osbp.runtime.feature.jsr303.validation/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/build.properties b/org.eclipse.osbp.runtime.feature.jsr303.validation/build.properties new file mode 100644 index 0000000..9d5dedc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/build.properties
@@ -0,0 +1,4 @@ +bin.includes = license.html, feature.xml,\ + feature.properties,\ + LICENSE.txt +src.includes = license.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/epl-v10.html b/org.eclipse.osbp.runtime.feature.jsr303.validation/epl-v10.html new file mode 100644 index 0000000..b398acc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/epl-v10.html
@@ -0,0 +1,259 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!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"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>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.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">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.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"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.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">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;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">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.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>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.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>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.</p> + +<p>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.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>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.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>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.</p> + +<p><b>7. GENERAL</b></p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/feature.properties b/org.eclipse.osbp.runtime.feature.jsr303.validation/feature.properties new file mode 100644 index 0000000..f1310d4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/feature.properties
@@ -0,0 +1,169 @@ +############################################################################### +# Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Florian Pirchner - initial API and implementation +############################################################################### +# feature.properties +# contains externalized strings for feature.xml +# "%foo" in feature.xml corresponds to the key "foo" in this file +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file should be translated. + +# "featureName" property - name of the feature +featureName = OSBP runtime: javax.validation ValidationFactory provider. + +# "providerName" property - name of the company that provides the feature +providerName=Eclipse OSBP + +# "description" property - description of the feature +description=Provides an "Apache bean validation ValidationFactory" as an OSGi service + +# "updateSiteName" property - label for the update site +updateSiteName= + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +February 1, 2011\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ##########################################
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/feature.xml b/org.eclipse.osbp.runtime.feature.jsr303.validation/feature.xml new file mode 100644 index 0000000..3a293eb --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/feature.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<feature + id="org.eclipse.osbp.runtime.feature.jsr303.validation" + label="%featureName" + version="0.9.0.qualifier" + provider-name="%providerName"> + + <description> + %description + </description> + + <copyright> + %copyright + </copyright> + + <license url="%licenseURL"> + %license + </license> + + <plugin + id="org.eclipse.osbp.runtime.jsr303.validation" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + +</feature>
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/license.html b/org.eclipse.osbp.runtime.feature.jsr303.validation/license.html new file mode 100644 index 0000000..6e579a5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/license.html
@@ -0,0 +1,164 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>February 1, 2011</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse + Foundation is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also + available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, +documentation and other files maintained in the Eclipse Foundation +source code + repository ("Repository") in software modules ("Modules") and made +available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to +facilitate delivering, extending, and upgrading the Content. Typical +modules may include plug-ins ("Plug-ins"), plug-in fragments +("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or +Fragments and associated material. Each Feature may be packaged as a +sub-directory in a directory named "features". Within a Feature, files +named "feature.xml" may contain a list of the names and version numbers +of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included +Features"). Within a Feature, files named "feature.xml" may contain a +list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be +contained in files named "about.html" ("Abouts"). The terms and +conditions governing Features and +Included Features should be contained in files named "license.html" +("Feature Licenses"). Abouts and Feature Licenses may be located in any + directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is +installed using the Provisioning Technology (as defined below), you must + agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the +Feature Update License should either provide you with the terms and +conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be +found in the "license" property of files named "feature.properties" +found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the +terms and conditions (or references to such terms and conditions) that +govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. + SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND +CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, +or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions +govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, +examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of +allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This +capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about +packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install + Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to + be presented to, and accepted by, the users of the Provisioning +Technology + in accordance with the Specification. By using Provisioning +Technology in such a manner and making it available in accordance with +the + Specification, you further acknowledge your agreement to, and the +acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in +which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, +extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology +may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user +the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable +Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable +Software Agreement must inform the user of the terms and conditions that + govern + the Installable Software and must solicit acceptance by the end +user in the manner prescribed in such Installable Software Agreement. +Upon such + indication of agreement by the user, the provisioning Technology +will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are + currently may have restrictions on the import, possession, and use, +and/or re-export to + another country, of encryption software. BEFORE using any encryption +software, please check the country's laws, regulations and policies +concerning the import, + possession, or use, and re-export of encryption software, to see if +this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/pom.xml b/org.eclipse.osbp.runtime.feature.jsr303.validation/pom.xml new file mode 100644 index 0000000..f52a7f3 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/pom.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.feature.jsr303.validation</artifactId> + <packaging>eclipse-feature</packaging> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-source-feature-plugin</artifactId> + <version>${tychoExtrasVersion}</version> + <executions> + <execution> + <id>source-feature</id> + <phase>package</phase> + <goals> + <goal>source-feature</goal> + </goals> + </execution> + </executions> + <configuration> + <labelSuffix> (source)</labelSuffix> + </configuration> + </plugin> + <plugin> + <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 + is not fixed --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <id>attached-p2-metadata</id> + <phase>package</phase> + <goals> + <goal>p2-metadata</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>javadoc-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project>
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/src/main/javadoc/README.txt b/org.eclipse.osbp.runtime.feature.jsr303.validation/src/main/javadoc/README.txt new file mode 100644 index 0000000..831da7e --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/src/main/javadoc/README.txt
@@ -0,0 +1 @@ +Resource folder for javadoc resources. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.jsr303.validation/src/overview.html b/org.eclipse.osbp.runtime.feature.jsr303.validation/src/overview.html new file mode 100644 index 0000000..bd17035 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.jsr303.validation/src/overview.html
@@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> + <HEAD> + <TITLE>OSBP .... Feature</TITLE> + </HEAD> + <BODY> + The <b>OSBP .... Feature</b> implements ... + + </BODY> +</HTML> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.resolverhooks/.project b/org.eclipse.osbp.runtime.feature.resolverhooks/.project new file mode 100644 index 0000000..5704952 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.resolverhooks/.project
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.feature.resolverhooks</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.feature.resolverhooks/LICENSE.txt b/org.eclipse.osbp.runtime.feature.resolverhooks/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.resolverhooks/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.resolverhooks/build.properties b/org.eclipse.osbp.runtime.feature.resolverhooks/build.properties new file mode 100644 index 0000000..9d5dedc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.resolverhooks/build.properties
@@ -0,0 +1,4 @@ +bin.includes = license.html, feature.xml,\ + feature.properties,\ + LICENSE.txt +src.includes = license.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.feature.resolverhooks/epl-v10.html b/org.eclipse.osbp.runtime.feature.resolverhooks/epl-v10.html new file mode 100644 index 0000000..b398acc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.resolverhooks/epl-v10.html
@@ -0,0 +1,259 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!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"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>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.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">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.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"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.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">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;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">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.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>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.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>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.</p> + +<p>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.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>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.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>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.</p> + +<p><b>7. GENERAL</b></p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.resolverhooks/feature.properties b/org.eclipse.osbp.runtime.feature.resolverhooks/feature.properties new file mode 100644 index 0000000..b72ebb3 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.resolverhooks/feature.properties
@@ -0,0 +1,169 @@ +############################################################################### +# Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Florian Pirchner - initial API and implementation +############################################################################### +# feature.properties +# contains externalized strings for feature.xml +# "%foo" in feature.xml corresponds to the key "foo" in this file +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file should be translated. + +# "featureName" property - name of the feature +featureName = OSGi resolver hooks for controlling bundle wiring + +# "providerName" property - name of the company that provides the feature +providerName=Eclipse OSBP + +# "description" property - description of the feature +description=Contains base features for the whole osbp runtime. + +# "updateSiteName" property - label for the update site +updateSiteName= + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +February 1, 2011\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ##########################################
diff --git a/org.eclipse.osbp.runtime.feature.resolverhooks/feature.xml b/org.eclipse.osbp.runtime.feature.resolverhooks/feature.xml new file mode 100644 index 0000000..0520982 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.resolverhooks/feature.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<feature + id="org.eclipse.osbp.runtime.feature.resolverhooks" + label="%featureName" + version="0.9.0.qualifier" + provider-name="%providerName"> + + <description> + %description + </description> + + <copyright> + %copyright + </copyright> + + <license url="%licenseURL"> + %license + </license> + + <plugin + id="org.eclipse.osbp.runtime.systemextension" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + +</feature>
diff --git a/org.eclipse.osbp.runtime.feature.resolverhooks/license.html b/org.eclipse.osbp.runtime.feature.resolverhooks/license.html new file mode 100644 index 0000000..6e579a5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.resolverhooks/license.html
@@ -0,0 +1,164 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>February 1, 2011</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse + Foundation is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also + available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, +documentation and other files maintained in the Eclipse Foundation +source code + repository ("Repository") in software modules ("Modules") and made +available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to +facilitate delivering, extending, and upgrading the Content. Typical +modules may include plug-ins ("Plug-ins"), plug-in fragments +("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or +Fragments and associated material. Each Feature may be packaged as a +sub-directory in a directory named "features". Within a Feature, files +named "feature.xml" may contain a list of the names and version numbers +of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included +Features"). Within a Feature, files named "feature.xml" may contain a +list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be +contained in files named "about.html" ("Abouts"). The terms and +conditions governing Features and +Included Features should be contained in files named "license.html" +("Feature Licenses"). Abouts and Feature Licenses may be located in any + directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is +installed using the Provisioning Technology (as defined below), you must + agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the +Feature Update License should either provide you with the terms and +conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be +found in the "license" property of files named "feature.properties" +found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the +terms and conditions (or references to such terms and conditions) that +govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. + SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND +CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, +or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions +govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, +examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of +allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This +capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about +packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install + Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to + be presented to, and accepted by, the users of the Provisioning +Technology + in accordance with the Specification. By using Provisioning +Technology in such a manner and making it available in accordance with +the + Specification, you further acknowledge your agreement to, and the +acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in +which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, +extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology +may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user +the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable +Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable +Software Agreement must inform the user of the terms and conditions that + govern + the Installable Software and must solicit acceptance by the end +user in the manner prescribed in such Installable Software Agreement. +Upon such + indication of agreement by the user, the provisioning Technology +will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are + currently may have restrictions on the import, possession, and use, +and/or re-export to + another country, of encryption software. BEFORE using any encryption +software, please check the country's laws, regulations and policies +concerning the import, + possession, or use, and re-export of encryption software, to see if +this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.resolverhooks/p2.inf b/org.eclipse.osbp.runtime.feature.resolverhooks/p2.inf new file mode 100644 index 0000000..99801bb --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.resolverhooks/p2.inf
@@ -0,0 +1,5 @@ +instructions.install = \ +addJvmArg(jvmArg:-Dosgi.framework.extensions=org.eclipse.osbp.runtime.systemextension); + +instructions.install.import= \ +org.eclipse.equinox.p2.touchpoint.eclipse.addJvmArg; \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.resolverhooks/pom.xml b/org.eclipse.osbp.runtime.feature.resolverhooks/pom.xml new file mode 100644 index 0000000..7b56a17 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.resolverhooks/pom.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.feature.resolverhooks</artifactId> + <packaging>eclipse-feature</packaging> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-source-feature-plugin</artifactId> + <version>${tychoExtrasVersion}</version> + <executions> + <execution> + <id>source-feature</id> + <phase>package</phase> + <goals> + <goal>source-feature</goal> + </goals> + </execution> + </executions> + <configuration> + <labelSuffix> (source)</labelSuffix> + </configuration> + </plugin> + <plugin> + <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 + is not fixed --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <id>attached-p2-metadata</id> + <phase>package</phase> + <goals> + <goal>p2-metadata</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>javadoc-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project>
diff --git a/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/.project b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/.project new file mode 100644 index 0000000..6a96cbf --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/.project
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.feature.jsr303.validation</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/LICENSE.txt b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/build.properties b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/build.properties new file mode 100644 index 0000000..9d5dedc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/build.properties
@@ -0,0 +1,4 @@ +bin.includes = license.html, feature.xml,\ + feature.properties,\ + LICENSE.txt +src.includes = license.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/epl-v10.html b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/epl-v10.html new file mode 100644 index 0000000..b398acc --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/epl-v10.html
@@ -0,0 +1,259 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!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"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Public License - Version 1.0</title> +<style type="text/css"> + body { + size: 8.5in 11.0in; + margin: 0.25in 0.5in 0.25in 0.5in; + tab-interval: 0.5in; + } + p { + margin-left: auto; + margin-top: 0.5em; + margin-bottom: 0.5em; + } + p.list { + margin-left: 0.5in; + margin-top: 0.05em; + margin-bottom: 0.05em; + } + </style> + +</head> + +<body lang="EN-US"> + +<h2>Eclipse Public License - v 1.0</h2> + +<p>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.</p> + +<p><b>1. DEFINITIONS</b></p> + +<p>"Contribution" means:</p> + +<p class="list">a) in the case of the initial Contributor, the initial +code and documentation distributed under this Agreement, and</p> +<p class="list">b) in the case of each subsequent Contributor:</p> +<p class="list">i) changes to the Program, and</p> +<p class="list">ii) additions to the Program;</p> +<p class="list">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.</p> + +<p>"Contributor" means any person or entity that distributes +the Program.</p> + +<p>"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.</p> + +<p>"Program" means the Contributions distributed in accordance +with this Agreement.</p> + +<p>"Recipient" means anyone who receives the Program under +this Agreement, including all Contributors.</p> + +<p><b>2. GRANT OF RIGHTS</b></p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p class="list">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.</p> + +<p><b>3. REQUIREMENTS</b></p> + +<p>A Contributor may choose to distribute the Program in object code +form under its own license agreement, provided that:</p> + +<p class="list">a) it complies with the terms and conditions of this +Agreement; and</p> + +<p class="list">b) its license agreement:</p> + +<p class="list">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;</p> + +<p class="list">ii) effectively excludes on behalf of all Contributors +all liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits;</p> + +<p class="list">iii) states that any provisions which differ from this +Agreement are offered by that Contributor alone and not by any other +party; and</p> + +<p class="list">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.</p> + +<p>When the Program is made available in source code form:</p> + +<p class="list">a) it must be made available under this Agreement; and</p> + +<p class="list">b) a copy of this Agreement must be included with each +copy of the Program.</p> + +<p>Contributors may not remove or alter any copyright notices contained +within the Program.</p> + +<p>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.</p> + +<p><b>4. COMMERCIAL DISTRIBUTION</b></p> + +<p>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.</p> + +<p>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.</p> + +<p><b>5. NO WARRANTY</b></p> + +<p>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.</p> + +<p><b>6. DISCLAIMER OF LIABILITY</b></p> + +<p>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.</p> + +<p><b>7. GENERAL</b></p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + +<p>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.</p> + + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/feature.properties b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/feature.properties new file mode 100644 index 0000000..b9c6af5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/feature.properties
@@ -0,0 +1,169 @@ +############################################################################### +# Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Florian Pirchner - initial API and implementation +############################################################################### +# feature.properties +# contains externalized strings for feature.xml +# "%foo" in feature.xml corresponds to the key "foo" in this file +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file should be translated. + +# "featureName" property - name of the feature +featureName = OSBP runtime: Implementation of ITypeProviderService + +# "providerName" property - name of the company that provides the feature +providerName=Eclipse OSBP + +# "description" property - description of the feature +description=Provides an implementation of ITypeProviderService + +# "updateSiteName" property - label for the update site +updateSiteName= + +# "copyright" property - text of the "Feature Update Copyright" +copyright=\ +Copyright (c) 2012, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n +################ end of copyright property #################################### + +# "licenseURL" property - URL of the "Feature License" +# do not translate value - just change to point to a locale-specific HTML page +licenseURL=license.html + +# "license" property - text of the "Feature Update License" +# should be plain text version of license agreement pointed to be "licenseURL" +license=\ +Eclipse Foundation Software User Agreement\n\ +February 1, 2011\n\ +\n\ +Usage Of Content\n\ +\n\ +THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ +OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ +USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ +AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ +NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ +AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ +AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ +OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ +TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ +OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ +BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ +\n\ +Applicable Licenses\n\ +\n\ +Unless otherwise indicated, all Content made available by the\n\ +Eclipse Foundation is provided to you under the terms and conditions of\n\ +the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ +provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ +For purposes of the EPL, "Program" will mean the Content.\n\ +\n\ +Content includes, but is not limited to, source code, object code,\n\ +documentation and other files maintained in the Eclipse Foundation source code\n\ +repository ("Repository") in software modules ("Modules") and made available\n\ +as downloadable archives ("Downloads").\n\ +\n\ + - Content may be structured and packaged into modules to facilitate delivering,\n\ + extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ + plug-in fragments ("Fragments"), and features ("Features").\n\ + - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ + in a directory named "plugins".\n\ + - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ + Each Feature may be packaged as a sub-directory in a directory named "features".\n\ + Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ + numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ + - Features may also include other Features ("Included Features"). Within a Feature, files\n\ + named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ +\n\ +The terms and conditions governing Plug-ins and Fragments should be\n\ +contained in files named "about.html" ("Abouts"). The terms and\n\ +conditions governing Features and Included Features should be contained\n\ +in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ +Licenses may be located in any directory of a Download or Module\n\ +including, but not limited to the following locations:\n\ +\n\ + - The top-level (root) directory\n\ + - Plug-in and Fragment directories\n\ + - Inside Plug-ins and Fragments packaged as JARs\n\ + - Sub-directories of the directory named "src" of certain Plug-ins\n\ + - Feature directories\n\ +\n\ +Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ +Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ +Update License") during the installation process. If the Feature contains\n\ +Included Features, the Feature Update License should either provide you\n\ +with the terms and conditions governing the Included Features or inform\n\ +you where you can locate them. Feature Update Licenses may be found in\n\ +the "license" property of files named "feature.properties" found within a Feature.\n\ +Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ +terms and conditions (or references to such terms and conditions) that\n\ +govern your use of the associated Content in that directory.\n\ +\n\ +THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ +SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ +\n\ + - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\ + - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ + - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ + - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ + - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ + - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ +\n\ +IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ +TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ +is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ +govern that particular Content.\n\ +\n\ +\n\Use of Provisioning Technology\n\ +\n\ +The Eclipse Foundation makes available provisioning software, examples of which include,\n\ +but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ +the purpose of allowing users to install software, documentation, information and/or\n\ +other materials (collectively "Installable Software"). This capability is provided with\n\ +the intent of allowing such users to install, extend and update Eclipse-based products.\n\ +Information about packaging Installable Software is available at\n\ +http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ +\n\ +You may use Provisioning Technology to allow other parties to install Installable Software.\n\ +You shall be responsible for enabling the applicable license agreements relating to the\n\ +Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ +in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ +making it available in accordance with the Specification, you further acknowledge your\n\ +agreement to, and the acquisition of all necessary rights to permit the following:\n\ +\n\ + 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ + the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ + extending or updating the functionality of an Eclipse-based product.\n\ + 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ + Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ + 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ + govern the use of the Installable Software ("Installable Software Agreement") and such\n\ + Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ + with the Specification. Such Installable Software Agreement must inform the user of the\n\ + terms and conditions that govern the Installable Software and must solicit acceptance by\n\ + the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ + indication of agreement by the user, the provisioning Technology will complete installation\n\ + of the Installable Software.\n\ +\n\ +Cryptography\n\ +\n\ +Content may contain encryption software. The country in which you are\n\ +currently may have restrictions on the import, possession, and use,\n\ +and/or re-export to another country, of encryption software. BEFORE\n\ +using any encryption software, please check the country's laws,\n\ +regulations and policies concerning the import, possession, or use, and\n\ +re-export of encryption software, to see if this is permitted.\n\ +\n\ +Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n +########### end of license property ##########################################
diff --git a/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/feature.xml b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/feature.xml new file mode 100644 index 0000000..7e0d31b --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/feature.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<feature + id="org.eclipse.osbp.runtime.feature.typeprovider.bundlespace" + label="%featureName" + version="0.9.0.qualifier" + provider-name="%providerName"> + + <description> + %description + </description> + + <copyright> + %copyright + </copyright> + + <license url="%licenseURL"> + %license + </license> + + <plugin + id="org.eclipse.osbp.runtime.typeprovider.bundlespace" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + +</feature>
diff --git a/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/license.html b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/license.html new file mode 100644 index 0000000..6e579a5 --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/license.html
@@ -0,0 +1,164 @@ +<!--?xml version="1.0" encoding="ISO-8859-1" ?--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Eclipse Foundation Software User Agreement</title> +</head> + +<body lang="EN-US"> +<h2>Eclipse Foundation Software User Agreement</h2> +<p>February 1, 2011</p> + +<h3>Usage Of Content</h3> + +<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p> + +<h3>Applicable Licenses</h3> + +<p>Unless otherwise indicated, all Content made available by the Eclipse + Foundation is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also + available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. + For purposes of the EPL, "Program" will mean the Content.</p> + +<p>Content includes, but is not limited to, source code, object code, +documentation and other files maintained in the Eclipse Foundation +source code + repository ("Repository") in software modules ("Modules") and made +available as downloadable archives ("Downloads").</p> + +<ul> + <li>Content may be structured and packaged into modules to +facilitate delivering, extending, and upgrading the Content. Typical +modules may include plug-ins ("Plug-ins"), plug-in fragments +("Fragments"), and features ("Features").</li> + <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li> + <li>A Feature is a bundle of one or more Plug-ins and/or +Fragments and associated material. Each Feature may be packaged as a +sub-directory in a directory named "features". Within a Feature, files +named "feature.xml" may contain a list of the names and version numbers +of the Plug-ins + and/or Fragments associated with that Feature.</li> + <li>Features may also include other Features ("Included +Features"). Within a Feature, files named "feature.xml" may contain a +list of the names and version numbers of Included Features.</li> +</ul> + +<p>The terms and conditions governing Plug-ins and Fragments should be +contained in files named "about.html" ("Abouts"). The terms and +conditions governing Features and +Included Features should be contained in files named "license.html" +("Feature Licenses"). Abouts and Feature Licenses may be located in any + directory of a Download or Module +including, but not limited to the following locations:</p> + +<ul> + <li>The top-level (root) directory</li> + <li>Plug-in and Fragment directories</li> + <li>Inside Plug-ins and Fragments packaged as JARs</li> + <li>Sub-directories of the directory named "src" of certain Plug-ins</li> + <li>Feature directories</li> +</ul> + +<p>Note: if a Feature made available by the Eclipse Foundation is +installed using the Provisioning Technology (as defined below), you must + agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the +Feature Update License should either provide you with the terms and +conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be +found in the "license" property of files named "feature.properties" +found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the +terms and conditions (or references to such terms and conditions) that +govern your use of the associated Content in +that directory.</p> + +<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER +TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. + SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p> + +<ul> + <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li> + <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li> + <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li> + <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li> + <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li> + <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li> +</ul> + +<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND +CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, +or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions +govern that particular Content.</p> + + +<h3>Use of Provisioning Technology</h3> + +<p>The Eclipse Foundation makes available provisioning software, +examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of +allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This +capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about +packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a> + ("Specification").</p> + +<p>You may use Provisioning Technology to allow other parties to install + Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to + be presented to, and accepted by, the users of the Provisioning +Technology + in accordance with the Specification. By using Provisioning +Technology in such a manner and making it available in accordance with +the + Specification, you further acknowledge your agreement to, and the +acquisition of all necessary rights to permit the following:</p> + +<ol> + <li>A series of actions may occur ("Provisioning Process") in +which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, +extending or updating the functionality of an Eclipse-based + product.</li> + <li>During the Provisioning Process, the Provisioning Technology +may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.</li> + <li>Pursuant to the Specification, you will provide to the user +the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable +Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable +Software Agreement must inform the user of the terms and conditions that + govern + the Installable Software and must solicit acceptance by the end +user in the manner prescribed in such Installable Software Agreement. +Upon such + indication of agreement by the user, the provisioning Technology +will complete installation of the Installable Software.</li> +</ol> + +<h3>Cryptography</h3> + +<p>Content may contain encryption software. The country in which you are + currently may have restrictions on the import, possession, and use, +and/or re-export to + another country, of encryption software. BEFORE using any encryption +software, please check the country's laws, regulations and policies +concerning the import, + possession, or use, and re-export of encryption software, to see if +this is permitted.</p> + +<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p> + + +</body></html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/pom.xml b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/pom.xml new file mode 100644 index 0000000..0b57acd --- /dev/null +++ b/org.eclipse.osbp.runtime.feature.typeprovider.bundlespace/pom.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.feature.typeprovider.bundlespace</artifactId> + <packaging>eclipse-feature</packaging> + <build> + <plugins> + <plugin> + <groupId>org.eclipse.tycho.extras</groupId> + <artifactId>tycho-source-feature-plugin</artifactId> + <version>${tychoExtrasVersion}</version> + <executions> + <execution> + <id>source-feature</id> + <phase>package</phase> + <goals> + <goal>source-feature</goal> + </goals> + </execution> + </executions> + <configuration> + <labelSuffix> (source)</labelSuffix> + </configuration> + </plugin> + <plugin> + <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 + is not fixed --> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-p2-plugin</artifactId> + <version>${tycho-version}</version> + <executions> + <execution> + <id>attached-p2-metadata</id> + <phase>package</phase> + <goals> + <goal>p2-metadata</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>javadoc-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project>
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/.project b/org.eclipse.osbp.runtime.jsr303.validation/.project new file mode 100644 index 0000000..ccf7eb4 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/.project
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.jsr303.validation</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/LICENSE.txt b/org.eclipse.osbp.runtime.jsr303.validation/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.jsr303.validation/META-INF/MANIFEST.MF new file mode 100644 index 0000000..7ead445 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.jsr303.validation +Bundle-Vendor: Eclipse OSBP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-SymbolicName: org.eclipse.osbp.runtime.jsr303.validation +Bundle-Version: 0.9.0.qualifier +Import-Package: javax.validation;version="1.1.0", + javax.validation.bootstrap;version="1.1.0", + javax.validation.constraints;version="1.1.0", + javax.validation.metadata;version="1.1.0", + javax.validation.spi;version="1.1.0", + org.osgi.framework;version="1.8.0", + org.osgi.service.component.annotations;version="1.2.0", + org.osgi.util.tracker;version="1.5.1", + org.slf4j;version="1.7.2" +Bundle-ActivationPolicy: lazy +Service-Component: OSGI-INF/org.eclipse.osbp.runtime.jsr303.validation.EventBroker.xml, + OSGI-INF/org.eclipse.osbp.runtime.jsr303.validation.common.JSR303ValidationParticipant.xml +Require-Bundle: org.apache.bval.org.apache.bval.bundle;bundle-version="0.5.0", + org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)" +Bundle-Activator: org.eclipse.osbp.runtime.jsr303.validation.Activator +Export-Package: org.eclipse.osbp.runtime.jsr303.validation.common;version="0.9.0"
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/OSGI-INF/org.eclipse.osbp.runtime.jsr303.validation.common.JSR303ValidationParticipant.xml b/org.eclipse.osbp.runtime.jsr303.validation/OSGI-INF/org.eclipse.osbp.runtime.jsr303.validation.common.JSR303ValidationParticipant.xml new file mode 100644 index 0000000..f5248b9 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/OSGI-INF/org.eclipse.osbp.runtime.jsr303.validation.common.JSR303ValidationParticipant.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.eclipse.osbp.runtime.jsr303.validation.common.JSR303ValidationParticipant"> + <implementation class="org.eclipse.osbp.runtime.jsr303.validation.common.JSR303ValidationParticipant"/> + <service> + <provide interface="org.eclipse.osbp.runtime.common.validation.IValidationParticipant"/> + </service> + <reference bind="bindValidatorFactory" cardinality="1..1" interface="javax.validation.ValidatorFactory" name="ValidatorFactory" policy="dynamic" unbind="unbindValidatorFactory"/> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/about.html b/org.eclipse.osbp.runtime.jsr303.validation/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/about.ini b/org.eclipse.osbp.runtime.jsr303.validation/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/about.mappings b/org.eclipse.osbp.runtime.jsr303.validation/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/about.properties b/org.eclipse.osbp.runtime.jsr303.validation/about.properties new file mode 100644 index 0000000..35ed921 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.jsr303.validation + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/build.properties b/org.eclipse.osbp.runtime.jsr303.validation/build.properties new file mode 100644 index 0000000..53ea953 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/build.properties
@@ -0,0 +1,9 @@ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + .project,\ + .classpath,\ + OSGI-INF/org.eclipse.osbp.runtime.jsr303.validation.common.JSR303ValidationParticipant.xml,\ + LICENSE.txt +source.. = src/ +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/pom.xml b/org.eclipse.osbp.runtime.jsr303.validation/pom.xml new file mode 100644 index 0000000..93d386a --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.jsr303.validation</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/Activator.java b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/Activator.java new file mode 100644 index 0000000..18a0000 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/Activator.java
@@ -0,0 +1,56 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.jsr303.validation; + +import java.util.ArrayList; +import java.util.List; + +import javax.validation.Validation; +import javax.validation.ValidationProviderResolver; +import javax.validation.ValidatorFactory; +import javax.validation.spi.ValidationProvider; + +import org.apache.bval.jsr303.ApacheValidationProvider; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; + +public class Activator implements BundleActivator, ValidationProviderResolver { + + private ServiceRegistration<ValidatorFactory> registry; + + @Override + public void start(BundleContext context) throws Exception { + // provide the bean validation factory + ValidatorFactory avf = Validation + .byProvider(ApacheValidationProvider.class) + .providerResolver(this).configure() + .messageInterpolator(new OSGiMessageInterpolator()) + .buildValidatorFactory(); + + registry = context.registerService(ValidatorFactory.class, avf, null); + } + + @Override + public void stop(BundleContext context) throws Exception { + if (registry != null) { + registry.unregister(); + registry = null; + } + } + + @Override + public List<ValidationProvider<?>> getValidationProviders() { + List<ValidationProvider<?>> result = new ArrayList<ValidationProvider<?>>(); + result.add(new ApacheValidationProvider()); + return result; + } +}
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/OSGiMessageInterpolator.java b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/OSGiMessageInterpolator.java new file mode 100644 index 0000000..23111f2 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/OSGiMessageInterpolator.java
@@ -0,0 +1,106 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.jsr303.validation; + +import java.util.Locale; +import java.util.ResourceBundle; + +import org.apache.bval.jsr303.DefaultMessageInterpolator; +import org.eclipse.osbp.runtime.common.i18n.II18nService; +import org.eclipse.osbp.runtime.jsr303.validation.common.ValidationUtil; +import org.osgi.framework.BundleContext; +import org.osgi.framework.FrameworkUtil; +import org.osgi.framework.ServiceReference; +import org.osgi.util.tracker.ServiceTracker; +import org.osgi.util.tracker.ServiceTrackerCustomizer; + +public class OSGiMessageInterpolator extends DefaultMessageInterpolator + implements ServiceTrackerCustomizer<II18nService, II18nService> { + + private Locale locale; + private ServiceTracker<II18nService, II18nService> serviceTracker; + private BundleContext context; + private II18nService i18nService; + + public OSGiMessageInterpolator() { + super(); + + setupI18nService(); + } + + public OSGiMessageInterpolator(ResourceBundle resourceBundle) { + super(resourceBundle); + + setupI18nService(); + } + + @Override + public String interpolate(String message, Context context, Locale locale) { + + String result = ""; + if (i18nService != null) { + result = i18nService.getValue( + ValidationUtil.extractMessage(message), locale); + if (result != null && !result.trim().equals("")) { + result = ValidationUtil + .replaceMessageParameter(result, context); + return result; + } + } + + return super.interpolate(message, context, locale); + } + + @Override + public String interpolate(String message, Context context) { + return super.interpolate(message, context); + } + + @Override + public void setLocale(Locale locale) { + super.setLocale(locale); + + this.locale = locale; + } + + private void setupI18nService() { + context = FrameworkUtil.getBundle(getClass()).getBundleContext(); + serviceTracker = new ServiceTracker<II18nService, II18nService>( + context, II18nService.class, this); + serviceTracker.open(); + } + + @Override + public II18nService addingService(ServiceReference<II18nService> reference) { + if (i18nService == null) { + i18nService = context.getService(reference); + } + return null; + } + + @Override + public void modifiedService(ServiceReference<II18nService> reference, + II18nService service) { + + } + + @Override + public void removedService(ServiceReference<II18nService> reference, + II18nService service) { + if (this.i18nService == service) { + this.i18nService = null; + } + } + +}
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/ErrorSeverity.java b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/ErrorSeverity.java new file mode 100644 index 0000000..ae841d7 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/ErrorSeverity.java
@@ -0,0 +1,20 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.jsr303.validation.common; + +import javax.validation.Payload; + +public interface ErrorSeverity extends Payload { + +}
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/InfoSeverity.java b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/InfoSeverity.java new file mode 100644 index 0000000..6f4a626 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/InfoSeverity.java
@@ -0,0 +1,20 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.jsr303.validation.common; + +import javax.validation.Payload; + +public interface InfoSeverity extends Payload { + +}
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/JSR303ValidationParticipant.java b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/JSR303ValidationParticipant.java new file mode 100644 index 0000000..76ce2fe --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/JSR303ValidationParticipant.java
@@ -0,0 +1,78 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.jsr303.validation.common; + +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import javax.validation.ConstraintViolation; +import javax.validation.Validator; +import javax.validation.ValidatorFactory; + +import org.eclipse.osbp.runtime.common.validation.IStatus; +import org.eclipse.osbp.runtime.common.validation.IValidationParticipant; +import org.eclipse.osbp.runtime.common.validation.ValidationKind; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; +import org.osgi.service.component.annotations.ReferenceCardinality; +import org.osgi.service.component.annotations.ReferencePolicy; + +@Component(immediate = true) +public class JSR303ValidationParticipant implements IValidationParticipant { + + private ValidatorFactory valFactory; + + @SuppressWarnings("rawtypes") + @Override + public Set<IStatus> validate(Object object, ValidationKind kind, + Map<String, Object> properties) { + if (valFactory == null) { + throw new IllegalArgumentException( + "No ValidatorFactory bound to service"); + } + + Validator validator = valFactory.getValidator(); + Set<ConstraintViolation<Object>> tempResult = validator.validate( + object, new Class[0]); + + Set<IStatus> result = ValidationUtil.getStatus(getClass(), + new HashSet<ConstraintViolation>(tempResult)); + + return result; + } + + /** + * Binds the validator factory to validate contraints placed on the dto + * class. + * + * @param valFactory + * the service + */ + @Reference(cardinality = ReferenceCardinality.MANDATORY, unbind = "unbindValidatorFactory", policy = ReferencePolicy.DYNAMIC) + protected void bindValidatorFactory(final ValidatorFactory valFactory) { + this.valFactory = valFactory; + } + + /** + * Unbinds the service from this component. <br> + * + * @param valFactory + * the service + */ + protected void unbindValidatorFactory(final ValidatorFactory valFactory) { + this.valFactory = null; + } + +}
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/ValidationUtil.java b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/ValidationUtil.java new file mode 100644 index 0000000..af1c654 --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/ValidationUtil.java
@@ -0,0 +1,122 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.jsr303.validation.common; + +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import javax.validation.ConstraintViolation; +import javax.validation.MessageInterpolator.Context; +import javax.validation.Payload; +import javax.validation.metadata.ConstraintDescriptor; + +import org.eclipse.osbp.runtime.common.validation.IStatus; +import org.eclipse.osbp.runtime.common.validation.Status; + +public class ValidationUtil { + + private ValidationUtil() { + super(); + } + + /** + * Maps the contraint violations to IStatus. + * + * @param originalViolations + * @return + */ + public static Set<IStatus> getStatus(Class<?> creator, + @SuppressWarnings("rawtypes") Set<ConstraintViolation> originalViolations) { + + Set<IStatus> result = new HashSet<IStatus>(); + for (ConstraintViolation<?> violation : originalViolations) { + + IStatus.Severity severity = getSeverity(violation); + String code = getMessageCode(violation); + + Class<?> clazz = violation.getLeafBean() != null ? violation + .getLeafBean().getClass() : null; + IStatus status = Status.createStatus(code, clazz, severity, + violation.getMessage()); + status.putProperty(IStatus.PROP_JAVAX_CONSTRAINT, violation); + status.putProperty(IStatus.PROP_JAVAX_PROPERTY_PATH, violation + .getPropertyPath().toString()); + status.putProperty(IStatus.PROP_JAVAX_LEAF_BEAN, + violation.getLeafBean()); + + if (creator != null) { + status.putProperty(IStatus.PROP_CREATOR, creator.getName()); + } + + result.add(status); + } + + return result; + } + + protected static String getMessageCode(ConstraintViolation<?> violation) { + String message = violation.getMessageTemplate().substring(1, + violation.getMessageTemplate().length() - 1); + if (message.contains(":")) { + String[] tokens = message.split(":"); + return tokens[1]; + } + + return violation.getPropertyPath().toString(); + } + + protected static IStatus.Severity getSeverity( + ConstraintViolation<?> violation) { + IStatus.Severity severity = IStatus.Severity.ERROR; + Set<Class<? extends Payload>> payloads = violation + .getConstraintDescriptor().getPayload(); + if (payloads.size() > 0) { + Class<? extends Payload> payload = payloads.iterator().next(); + if (payload == InfoSeverity.class) { + severity = IStatus.Severity.INFO; + } else if (payload == WarningSeverity.class) { + severity = IStatus.Severity.WARNING; + } else if (payload == ErrorSeverity.class) { + severity = IStatus.Severity.ERROR; + } + } + return severity; + } + + public static String replaceMessageParameter(String message, Context context) { + ConstraintDescriptor<?> desc = context.getConstraintDescriptor(); + Map<String, Object> props = desc.getAttributes(); + + for (Map.Entry<String, Object> entry : props.entrySet()) { + String replacement = "\\{" + entry.getKey() + "\\}"; + message = message.replaceAll(replacement, entry.getValue() + .toString()); + } + + return message; + } + + public static String extractMessage(String message) { + if (message.startsWith("{")) { + message = message.substring(1, message.length() - 1); + } + if (message.contains(":")) { + String[] i18nKey = message.split(":"); + message = i18nKey[0]; + } + return message; + } + +}
diff --git a/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/WarningSeverity.java b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/WarningSeverity.java new file mode 100644 index 0000000..78f566a --- /dev/null +++ b/org.eclipse.osbp.runtime.jsr303.validation/src/org/eclipse/osbp/runtime/jsr303/validation/common/WarningSeverity.java
@@ -0,0 +1,20 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.jsr303.validation.common; + +import javax.validation.Payload; + +public interface WarningSeverity extends Payload { + +}
diff --git a/org.eclipse.osbp.runtime.logback.fragment/.project b/org.eclipse.osbp.runtime.logback.fragment/.project new file mode 100644 index 0000000..d871a45 --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/.project
@@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.logback.fragment</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.logback.fragment/LICENSE.txt b/org.eclipse.osbp.runtime.logback.fragment/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.logback.fragment/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.logback.fragment/META-INF/MANIFEST.MF new file mode 100644 index 0000000..889ce06 --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.logback.fragment +Bundle-SymbolicName: org.eclipse.osbp.runtime.logback.fragment +Bundle-Vendor: Eclipse OSBP +Bundle-Version: 0.9.0.qualifier +Fragment-Host: ch.qos.logback.classic +Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osbp.runtime.logback.fragment/README.md b/org.eclipse.osbp.runtime.logback.fragment/README.md new file mode 100644 index 0000000..db1e5bb --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/README.md
@@ -0,0 +1,4 @@ +logback fragment +================ + +If this fragment is added to the OSGi environment, only Messages of Type INFO or higher (WARNING, ERROR,...) are shown.
diff --git a/org.eclipse.osbp.runtime.logback.fragment/about.html b/org.eclipse.osbp.runtime.logback.fragment/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.logback.fragment/about.ini b/org.eclipse.osbp.runtime.logback.fragment/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.logback.fragment/about.mappings b/org.eclipse.osbp.runtime.logback.fragment/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.logback.fragment/about.properties b/org.eclipse.osbp.runtime.logback.fragment/about.properties new file mode 100644 index 0000000..e2ef932 --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.logback.fragment + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.logback.fragment/build.properties b/org.eclipse.osbp.runtime.logback.fragment/build.properties new file mode 100644 index 0000000..fdca065 --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/build.properties
@@ -0,0 +1,7 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + build.properties,\ + LICENSE.txt +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.logback.fragment/logback.xml b/org.eclipse.osbp.runtime.logback.fragment/logback.xml new file mode 100644 index 0000000..c426104 --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/logback.xml
@@ -0,0 +1,13 @@ +<configuration> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <!-- encoders are assigned the type + ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> + </encoder> + </appender> + + <root level="ERROR"> + <appender-ref ref="STDOUT" /> + </root> +</configuration>
diff --git a/org.eclipse.osbp.runtime.logback.fragment/pom.xml b/org.eclipse.osbp.runtime.logback.fragment/pom.xml new file mode 100644 index 0000000..52f2666 --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/pom.xml
@@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.logback.fragment</artifactId> + <packaging>eclipse-plugin</packaging> + +</project>
diff --git a/org.eclipse.osbp.runtime.logback.fragment/src/PLACEHOLDER b/org.eclipse.osbp.runtime.logback.fragment/src/PLACEHOLDER new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/org.eclipse.osbp.runtime.logback.fragment/src/PLACEHOLDER
diff --git a/org.eclipse.osbp.runtime.memento/.project b/org.eclipse.osbp.runtime.memento/.project new file mode 100644 index 0000000..89f8e5a --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/.project
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.memento</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.memento/LICENSE.txt b/org.eclipse.osbp.runtime.memento/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.memento/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.memento/META-INF/MANIFEST.MF new file mode 100644 index 0000000..f922205 --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.memento +Bundle-Vendor: Eclipse OSBP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-SymbolicName: org.eclipse.osbp.runtime.memento +Bundle-Version: 0.9.0.qualifier +Import-Package: org.osgi.framework;version="1.8.0", + org.osgi.service.component;version="1.2.2", + org.osgi.service.component.annotations;version="1.2.0", + org.slf4j;version="1.7.2" +Service-Component: OSGI-INF/org.eclipse.osbp.runtime.jsr303.validation.EventBroker.xml, + OSGI-INF/org.eclipse.osbp.runtime.memento.MementoManager.xml +Bundle-ClassPath: . +Require-Bundle: org.eclipse.emf.ecore, + org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)" +Export-Package: org.eclipse.osbp.runtime.memento;x-internal:=true;version="0.9.0"
diff --git a/org.eclipse.osbp.runtime.memento/OSGI-INF/org.eclipse.osbp.runtime.memento.MementoManager.xml b/org.eclipse.osbp.runtime.memento/OSGI-INF/org.eclipse.osbp.runtime.memento.MementoManager.xml new file mode 100644 index 0000000..59a6a45 --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/OSGI-INF/org.eclipse.osbp.runtime.memento.MementoManager.xml
@@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" deactivate="deactivate" immediate="true" name="org.eclipse.osbp.runtime.memento.MementoManager"> + <implementation class="org.eclipse.osbp.runtime.memento.MementoManager"/> + <service> + <provide interface="org.eclipse.osbp.runtime.common.memento.IMementoManager"/> + </service> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.memento/about.html b/org.eclipse.osbp.runtime.memento/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.memento/about.ini b/org.eclipse.osbp.runtime.memento/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.memento/about.mappings b/org.eclipse.osbp.runtime.memento/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.memento/about.properties b/org.eclipse.osbp.runtime.memento/about.properties new file mode 100644 index 0000000..fd79688 --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.memento + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.memento/build.properties b/org.eclipse.osbp.runtime.memento/build.properties new file mode 100644 index 0000000..8f9717c --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/build.properties
@@ -0,0 +1,10 @@ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + .project,\ + .classpath,\ + OSGI-INF/,\ + .settings/,\ + LICENSE.txt +source.. = src/ +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.memento/pom.xml b/org.eclipse.osbp.runtime.memento/pom.xml new file mode 100644 index 0000000..89ad26a --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.memento</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.memento/src/org/eclipse/osbp/runtime/memento/MementoManager.java b/org.eclipse.osbp.runtime.memento/src/org/eclipse/osbp/runtime/memento/MementoManager.java new file mode 100644 index 0000000..85fb8cf --- /dev/null +++ b/org.eclipse.osbp.runtime.memento/src/org/eclipse/osbp/runtime/memento/MementoManager.java
@@ -0,0 +1,115 @@ +/** + * + * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation + * + */ + package org.eclipse.osbp.runtime.memento; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Path; +import java.util.ArrayList; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.osbp.runtime.common.memento.IMementoManager; +import org.eclipse.osbp.runtime.common.validation.IStatus; +import org.eclipse.osbp.runtime.common.validation.Status; +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.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Component(immediate = true) +public class MementoManager implements IMementoManager { + + private static final Logger LOGGER = LoggerFactory + .getLogger(MementoManager.class); + + private ResourceSet rs; + private Path basePath; + + @Override + public Object loadMemento(String userId, String mementoId) { + + URI uri = createURI(userId, mementoId); + File file = new File(uri.toFileString()); + if (!file.exists()) { + LOGGER.debug("Memento does not exists: " + uri.toFileString()); + return null; + } + + Resource resource = rs.getResource(createURI(userId, mementoId), true); + return resource.getContents().size() > 0 ? resource.getContents() + .get(0) : null; + } + + @Override + public IStatus saveMemento(String userId, String mementoId, Object memento) { + try { + URI uri = createURI(userId, mementoId); + + Resource resource = null; + try { + resource = rs.getResource(uri, true); + } catch (Exception ex) { + LOGGER.debug("Resource not available yet. A new one is created. URI = " + + uri); + } + + if (resource == null) { + resource = rs.getResource(uri, false); + } + + resource.getContents().clear(); + resource.getContents().add((EObject) memento); + resource.save(null); + } catch (IOException e) { + return Status.createErrorStatus(e); + } + + return IStatus.OK; + } + + protected URI createURI(String userId, String mementoId) { + URI result = URI.createFileURI(basePath.toString()); + result = result.appendSegment(userId); + result = result.appendSegment(mementoId); + result = result.appendFileExtension("memento"); + return result; + } + + @Activate + protected void activate(ComponentContext context) { + rs = new ResourceSetImpl(); + + File baseFolder = context.getBundleContext().getDataFile(""); + basePath = baseFolder.toPath(); + } + + @Deactivate + protected void deactivate() { + + // unload all resources + for (Resource resource : new ArrayList<Resource>(rs.getResources())) { + resource.unload(); + } + + rs = null; + basePath = null; + } + +}
diff --git a/org.eclipse.osbp.runtime.security/.project b/org.eclipse.osbp.runtime.security/.project new file mode 100644 index 0000000..50329a7 --- /dev/null +++ b/org.eclipse.osbp.runtime.security/.project
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.security</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.security/LICENSE.txt b/org.eclipse.osbp.runtime.security/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.security/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.security/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.security/META-INF/MANIFEST.MF new file mode 100644 index 0000000..6884709 --- /dev/null +++ b/org.eclipse.osbp.runtime.security/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.security +Bundle-Vendor: Eclipse OSBP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-SymbolicName: org.eclipse.osbp.runtime.security +Bundle-Version: 0.9.0.qualifier +Import-Package: org.osgi.framework;version="1.8.0", + org.osgi.service.component;version="1.2.2", + org.osgi.service.component.annotations;version="1.2.0", + org.osgi.service.event;version="1.3.0", + org.osgi.service.prefs, + org.slf4j;version="1.7.2" +Bundle-ActivationPolicy: lazy +Service-Component: OSGI-INF/org.eclipse.osbp.runtime.security.impl.UserNotificationService.xml, + OSGI-INF/org.eclipse.osbp.runtime.security.impl.JdbcRealmComponent.xml, + OSGI-INF/org.eclipse.osbp.runtime.security.impl.SecurityManagerComponent.xml +Require-Bundle: org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)", + org.apache.shiro.core;bundle-version="1.2.3" +Export-Package: org.eclipse.osbp.runtime.security;version="0.9.0", + org.eclipse.osbp.runtime.security.impl;x-internal:=true;version="0.9.0"
diff --git a/org.eclipse.osbp.runtime.security/OSGI-INF/org.eclipse.osbp.runtime.security.impl.JdbcRealmComponent.xml b/org.eclipse.osbp.runtime.security/OSGI-INF/org.eclipse.osbp.runtime.security.impl.JdbcRealmComponent.xml new file mode 100644 index 0000000..fab37ab --- /dev/null +++ b/org.eclipse.osbp.runtime.security/OSGI-INF/org.eclipse.osbp.runtime.security.impl.JdbcRealmComponent.xml
@@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.eclipse.osbp.runtime.security.impl.JdbcRealmComponent"> + <implementation class="org.eclipse.osbp.runtime.security.impl.JdbcRealmComponent"/> + <reference bind="setDatasource" cardinality="1..1" interface="javax.sql.DataSource" name="Datasource" policy="static" target="(security.datasource=jdbc)" unbind="unsetDatasource"/> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.security/OSGI-INF/org.eclipse.osbp.runtime.security.impl.SecurityManagerComponent.xml b/org.eclipse.osbp.runtime.security/OSGI-INF/org.eclipse.osbp.runtime.security.impl.SecurityManagerComponent.xml new file mode 100644 index 0000000..99e251d --- /dev/null +++ b/org.eclipse.osbp.runtime.security/OSGI-INF/org.eclipse.osbp.runtime.security.impl.SecurityManagerComponent.xml
@@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.eclipse.osbp.runtime.security.impl.SecurityManagerComponent"> + <implementation class="org.eclipse.osbp.runtime.security.impl.SecurityManagerComponent"/> + <reference bind="addRealm" cardinality="0..n" interface="org.apache.shiro.realm.Realm" name="Realm" policy="static" unbind="removeRealm"/> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.security/about.html b/org.eclipse.osbp.runtime.security/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.security/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.security/about.ini b/org.eclipse.osbp.runtime.security/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.security/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.security/about.mappings b/org.eclipse.osbp.runtime.security/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.security/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.security/about.properties b/org.eclipse.osbp.runtime.security/about.properties new file mode 100644 index 0000000..706c165 --- /dev/null +++ b/org.eclipse.osbp.runtime.security/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.security + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.security/build.properties b/org.eclipse.osbp.runtime.security/build.properties new file mode 100644 index 0000000..e79b84a --- /dev/null +++ b/org.eclipse.osbp.runtime.security/build.properties
@@ -0,0 +1,9 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + OSGI-INF/,\ + .project,\ + .classpath,\ + LICENSE.txt +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.security/pom.xml b/org.eclipse.osbp.runtime.security/pom.xml new file mode 100644 index 0000000..d5b7204 --- /dev/null +++ b/org.eclipse.osbp.runtime.security/pom.xml
@@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.security</artifactId> + <packaging>eclipse-plugin</packaging> + +</project>
diff --git a/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/ISessionManagerService.java b/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/ISessionManagerService.java new file mode 100644 index 0000000..5ed5873 --- /dev/null +++ b/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/ISessionManagerService.java
@@ -0,0 +1,17 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.security; + +import org.apache.shiro.session.mgt.SessionManager; + +public interface ISessionManagerService extends SessionManager { + +}
diff --git a/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/impl/JdbcRealmComponent.java b/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/impl/JdbcRealmComponent.java new file mode 100644 index 0000000..73edbed --- /dev/null +++ b/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/impl/JdbcRealmComponent.java
@@ -0,0 +1,53 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.security.impl; + +import javax.sql.DataSource; + +import org.apache.shiro.realm.Realm; +import org.apache.shiro.realm.jdbc.JdbcRealm; +import org.osgi.framework.ServiceRegistration; +import org.osgi.service.component.ComponentContext; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; +import org.osgi.service.component.annotations.ReferenceCardinality; + +@Component(immediate=true) +public class JdbcRealmComponent { + + private ComponentContext context; + private ServiceRegistration<Realm> reg; + private DataSource ds; + + protected void activate(ComponentContext context) { + this.context = context; + + JdbcRealm realm = new JdbcRealm(); + realm.setDataSource(ds); + + reg = this.context.getBundleContext().registerService(Realm.class, + realm, null); + } + + @Reference(cardinality = ReferenceCardinality.MANDATORY, target = "(security.datasource=jdbc)", unbind = "unsetDatasource") + protected void setDatasource(DataSource ds) { + this.ds = ds; + } + + protected void unsetDatasource(DataSource ds) { + this.ds = null; + } + + protected void deactivate() { + reg.unregister(); + reg = null; + } +}
diff --git a/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/impl/LdapRealmComponent.java b/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/impl/LdapRealmComponent.java new file mode 100644 index 0000000..1660d1a --- /dev/null +++ b/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/impl/LdapRealmComponent.java
@@ -0,0 +1,51 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.security.impl; + +import org.apache.shiro.realm.Realm; +import org.apache.shiro.realm.ldap.JndiLdapContextFactory; +import org.apache.shiro.realm.ldap.JndiLdapRealm; +import org.osgi.framework.ServiceRegistration; +import org.osgi.service.component.ComponentContext; + +/** + * To use this realm, provide your own declarative OSGi service and pass in the + * properties requested. + */ +public class LdapRealmComponent { + + private static final String LDAP_AUTHENTICATION_MECHANISM = "osbp.security.ldap.authenticationMechanism"; + private static final String LDAP_URL = "osbp.security.ldap.url"; + private ComponentContext context; + private ServiceRegistration<Realm> reg; + + protected void activate(ComponentContext context) { + this.context = context; + + JndiLdapRealm realm = new JndiLdapRealm(); + realm.setUserDnTemplate((String) context.getProperties().get( + "osbp.security.ldap.userDnTemplate")); + + JndiLdapContextFactory factory = new JndiLdapContextFactory(); + factory.setUrl((String) context.getProperties().get(LDAP_URL)); + factory.setAuthenticationMechanism((String) context.getProperties() + .get(LDAP_AUTHENTICATION_MECHANISM)); + realm.setContextFactory(factory); + + reg = this.context.getBundleContext().registerService(Realm.class, + realm, null); + } + + protected void deactivate() { + reg.unregister(); + reg = null; + } +}
diff --git a/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/impl/SecurityManagerComponent.java b/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/impl/SecurityManagerComponent.java new file mode 100644 index 0000000..93a93e3 --- /dev/null +++ b/org.eclipse.osbp.runtime.security/src/org/eclipse/osbp/runtime/security/impl/SecurityManagerComponent.java
@@ -0,0 +1,64 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.security.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.config.IniSecurityManagerFactory; +import org.apache.shiro.mgt.DefaultSecurityManager; +import org.apache.shiro.mgt.SecurityManager; +import org.apache.shiro.realm.Realm; +import org.osgi.framework.ServiceRegistration; +import org.osgi.service.component.ComponentContext; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; +import org.osgi.service.component.annotations.ReferenceCardinality; + +@Component(immediate=true) +public class SecurityManagerComponent { + + private IniSecurityManagerFactory factory; + private DefaultSecurityManager securityManager; + private ComponentContext context; + private ServiceRegistration<SecurityManager> reg; + + protected void activate(ComponentContext context) { + this.context = context; + factory = new IniSecurityManagerFactory("classpath:shiro.ini"); + + securityManager = (DefaultSecurityManager) factory.getInstance(); + SecurityUtils.setSecurityManager(securityManager); + + reg = this.context.getBundleContext().registerService( + SecurityManager.class, securityManager, null); + } + + @Reference(cardinality = ReferenceCardinality.MULTIPLE, unbind = "removeRealm") + protected void addRealm(Realm realm) { + List<Realm> realms = new ArrayList<Realm>(securityManager.getRealms()); + realms.add(realm); + securityManager.setRealms(realms); + } + + protected void removeRealm(Realm realm) { + // not supported by shiro + } + + protected void deactivate() { + reg.unregister(); + reg = null; + + factory = null; + securityManager = null; + } +}
diff --git a/org.eclipse.osbp.runtime.systemextension/.project b/org.eclipse.osbp.runtime.systemextension/.project new file mode 100644 index 0000000..653a8b5 --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/.project
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.systemextension</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.systemextension/LICENSE.txt b/org.eclipse.osbp.runtime.systemextension/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.systemextension/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.systemextension/META-INF/MANIFEST.MF new file mode 100644 index 0000000..4f46589 --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.systemextension +Bundle-SymbolicName: org.eclipse.osbp.runtime.systemextension +Bundle-Vendor: Eclipse OSBP +Bundle-Version: 0.9.0.qualifier +Fragment-Host: org.eclipse.osgi;bundle-version="3.10.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Service-Component: OSGI-INF/component.xml
diff --git a/org.eclipse.osbp.runtime.systemextension/about.html b/org.eclipse.osbp.runtime.systemextension/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.systemextension/about.ini b/org.eclipse.osbp.runtime.systemextension/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.systemextension/about.mappings b/org.eclipse.osbp.runtime.systemextension/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.systemextension/about.properties b/org.eclipse.osbp.runtime.systemextension/about.properties new file mode 100644 index 0000000..380f50b --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.systemextension + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.systemextension/build.properties b/org.eclipse.osbp.runtime.systemextension/build.properties new file mode 100644 index 0000000..708601e --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/build.properties
@@ -0,0 +1,10 @@ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + hookconfigurators.properties,\ + build.properties,\ + .classpath,\ + .project,\ + LICENSE.txt +source.. = src/ +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.systemextension/hookconfigurators.properties b/org.eclipse.osbp.runtime.systemextension/hookconfigurators.properties new file mode 100644 index 0000000..a098dfb --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/hookconfigurators.properties
@@ -0,0 +1 @@ +hook.configurators=org.eclipse.osbp.runtime.systemextension.OSBPHookConfigurator
diff --git a/org.eclipse.osbp.runtime.systemextension/pom.xml b/org.eclipse.osbp.runtime.systemextension/pom.xml new file mode 100644 index 0000000..29eaef7 --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.systemextension</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/Activator.java b/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/Activator.java new file mode 100644 index 0000000..aaf120e --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/Activator.java
@@ -0,0 +1,36 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.systemextension; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.osgi.framework.hooks.resolver.ResolverHookFactory; + +public class Activator implements BundleActivator { + + private ServiceRegistration<ResolverHookFactory> reg; + + @Override + public void start(BundleContext context) throws Exception { + reg = context.registerService(ResolverHookFactory.class, + new ResolverHook(), null); + } + + @Override + public void stop(BundleContext context) throws Exception { + if (reg != null) { + reg.unregister(); + reg = null; + } + } + +}
diff --git a/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/OSBPActivatorHookFactory.java b/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/OSBPActivatorHookFactory.java new file mode 100644 index 0000000..f51cd82 --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/OSBPActivatorHookFactory.java
@@ -0,0 +1,23 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.systemextension; + +import org.eclipse.osgi.internal.hookregistry.ActivatorHookFactory; +import org.osgi.framework.BundleActivator; + +public class OSBPActivatorHookFactory implements ActivatorHookFactory { + + @Override + public BundleActivator createActivator() { + return new Activator(); + } + +}
diff --git a/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/OSBPHookConfigurator.java b/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/OSBPHookConfigurator.java new file mode 100644 index 0000000..2ec5318 --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/OSBPHookConfigurator.java
@@ -0,0 +1,24 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.systemextension; + +import org.eclipse.osgi.internal.hookregistry.HookConfigurator; +import org.eclipse.osgi.internal.hookregistry.HookRegistry; + +public class OSBPHookConfigurator implements HookConfigurator { + + @Override + public void addHooks(HookRegistry hookRegistry) { + hookRegistry + .addActivatorHookFactory(new OSBPActivatorHookFactory()); + } + +}
diff --git a/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/ResolverHook.java b/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/ResolverHook.java new file mode 100644 index 0000000..9470a68 --- /dev/null +++ b/org.eclipse.osbp.runtime.systemextension/src/org/eclipse/osbp/runtime/systemextension/ResolverHook.java
@@ -0,0 +1,155 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.systemextension; + +import java.util.Collection; +import java.util.Iterator; + +import org.osgi.framework.hooks.resolver.ResolverHookFactory; +import org.osgi.framework.wiring.BundleCapability; +import org.osgi.framework.wiring.BundleRequirement; +import org.osgi.framework.wiring.BundleRevision; + +public class ResolverHook implements ResolverHookFactory { + + @Override + public org.osgi.framework.hooks.resolver.ResolverHook begin( + final Collection<BundleRevision> triggers) { + return new org.osgi.framework.hooks.resolver.ResolverHook() { + + @Override + public void filterSingletonCollisions(BundleCapability singleton, + Collection<BundleCapability> collisionCandidates) { + } + + @Override + public void filterResolvable(Collection<BundleRevision> candidates) { + + } + + @Override + public void filterMatches(BundleRequirement requirement, + Collection<BundleCapability> candidates) { + if (requirement.getNamespace().equals("osgi.wiring.bundle")) { + + if (candidates.size() > 1 && containsGuava(candidates)) { + filterHighestGuava(candidates); + } + } +// if (requirement.getNamespace().equals("osgi.wiring.package")) { +// +// if (candidates.size() > 1 +// && containsJavaxAnnotation(candidates)) { +// removeJavaxAnnotation120(candidates); +// } +// } + } + + @Override + public void end() { + + } + }; + } + + /** + * Returns true, if the candiates contain guava. + * + * @param candidates + * @return + */ + protected boolean containsGuava(Collection<BundleCapability> candidates) { + for (BundleCapability cap : candidates) { + if (cap.getResource().getSymbolicName().equals("com.google.guava")) { + return true; + + } + } + return false; + } + +// /** +// * Returns true if the candiates contain javax.annotation. +// * +// * @param candidates +// * @return +// */ +// protected boolean containsJavaxAnnotation( +// Collection<BundleCapability> candidates) { +// for (BundleCapability cap : candidates) { +// if (cap.getResource().getSymbolicName().equals("javax.annotation")) { +// return true; +// +// } +// } +// return false; +// } + +// /** +// * Handle javax.annotation bundle. Do not use version 1.2.0. +// * +// * @param candidates +// */ +// private void removeJavaxAnnotation120( +// Collection<BundleCapability> candidates) { +// for (Iterator<BundleCapability> iterator = candidates.iterator(); iterator +// .hasNext();) { +// BundleCapability cap = iterator.next(); +// if (cap.getResource().getVersion().toString().startsWith("1.2.0")) { +// iterator.remove(); +// } +// } +// } + + /** + * Handle guava bundle. Only use the highest supported version. + * + * @param candidates + */ + private void filterHighestGuava(Collection<BundleCapability> candidates) { + BundleCapability highest = getHighestGuava(candidates); + if (highest != null) { + for (Iterator<BundleCapability> iterator = candidates.iterator(); iterator + .hasNext();) { + BundleCapability cap = iterator.next(); + if (cap != highest) { + iterator.remove(); + } + } + } + } + + /** + * Filters the highest available guava from candidates. + * + * @param candidates + * @return + */ + private BundleCapability getHighestGuava( + Collection<BundleCapability> candidates) { + BundleCapability highest = null; + for (BundleCapability cap : candidates) { + if (cap.getResource().getSymbolicName().equals("com.google.guava")) { + if (highest != null) { + if (highest.getResource().getVersion() + .compareTo(cap.getResource().getVersion()) < 1) { + highest = cap; + } + } else { + highest = cap; + } + + } + } + return highest; + } + +}
diff --git a/org.eclipse.osbp.runtime.target/luna.target b/org.eclipse.osbp.runtime.target/luna.target new file mode 100644 index 0000000..a96f55e --- /dev/null +++ b/org.eclipse.osbp.runtime.target/luna.target
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?pde version="3.8"?><target includeMode="feature" name="org.eclipse.osbp.runtime.target.kepler" sequenceNumber="8"> +<locations> +<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit"> +<unit id="org.eclipse.equinox.sdk.feature.group" version="3.10.0.v20140606-1602"/> +<repository location="http://download.eclipse.org/releases/luna"/> +</location> +<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit"> +<unit id="ch.qos.logback.classic.source" version="1.0.0.v20111214-2030"/> +<unit id="ch.qos.logback.slf4j.source" version="1.0.0.v20120123-1500"/> +<unit id="ch.qos.logback.slf4j" version="1.0.0.v20120123-1500"/> +<unit id="ch.qos.logback.core.source" version="1.0.0.v20111214-2030"/> +<unit id="ch.qos.logback.classic" version="1.0.0.v20111214-2030"/> +<unit id="ch.qos.logback.core" version="1.0.0.v20111214-2030"/> +<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository"/> +</location> +</locations> +</target>
diff --git a/org.eclipse.osbp.runtime.target/pom.xml b/org.eclipse.osbp.runtime.target/pom.xml new file mode 100644 index 0000000..ade29f3 --- /dev/null +++ b/org.eclipse.osbp.runtime.target/pom.xml
@@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.target</artifactId> + <packaging>eclipse-target-definition</packaging> + + <version>0.9.0-SNAPSHOT</version> +</project>
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/.project b/org.eclipse.osbp.runtime.typeprovider.bundlespace/.project new file mode 100644 index 0000000..4503f4e --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/.project
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.typeprovider.bundlespace</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/LICENSE.txt b/org.eclipse.osbp.runtime.typeprovider.bundlespace/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.typeprovider.bundlespace/META-INF/MANIFEST.MF new file mode 100644 index 0000000..84d0800 --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.typeprovider.bundlespace +Bundle-Vendor: Eclipse OSBP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-SymbolicName: org.eclipse.osbp.runtime.typeprovider.bundlespace +Bundle-Version: 0.9.0.qualifier +Import-Package: org.osgi.framework;version="1.8.0", + org.osgi.service.component.annotations;version="1.2.0", + org.slf4j;version="1.7.2" +Service-Component: OSGI-INF/org.eclipse.osbp.runtime.jsr303.validation.EventBroker.xml, + OSGI-INF/org.eclipse.osbp.runtime.typeprovider.bundlespace.BundleSpaceTypeProviderService.xml +Require-Bundle: org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)"
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/OSGI-INF/org.eclipse.osbp.runtime.typeprovider.bundlespace.BundleSpaceTypeProviderService.xml b/org.eclipse.osbp.runtime.typeprovider.bundlespace/OSGI-INF/org.eclipse.osbp.runtime.typeprovider.bundlespace.BundleSpaceTypeProviderService.xml new file mode 100644 index 0000000..e49b498 --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/OSGI-INF/org.eclipse.osbp.runtime.typeprovider.bundlespace.BundleSpaceTypeProviderService.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.eclipse.osbp.runtime.typeprovider.bundlespace.BundleSpaceTypeProviderService"> + <implementation class="org.eclipse.osbp.runtime.typeprovider.bundlespace.BundleSpaceTypeProviderService"/> + <service> + <provide interface="org.eclipse.osbp.runtime.common.types.ITypeProviderService"/> + </service> + <reference bind="bindBundleSpace" cardinality="1..1" interface="org.eclipse.osbp.runtime.common.types.IBundleSpace" name="BundleSpace" policy="static" unbind="unbindBundleSpace"/> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.html b/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.ini b/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.mappings b/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.properties b/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.properties new file mode 100644 index 0000000..240914e --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.typeprovider.bundlespace + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/build.properties b/org.eclipse.osbp.runtime.typeprovider.bundlespace/build.properties new file mode 100644 index 0000000..8f9717c --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/build.properties
@@ -0,0 +1,10 @@ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + .project,\ + .classpath,\ + OSGI-INF/,\ + .settings/,\ + LICENSE.txt +source.. = src/ +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/pom.xml b/org.eclipse.osbp.runtime.typeprovider.bundlespace/pom.xml new file mode 100644 index 0000000..15a81a2 --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.typeprovider.bundlespace</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.typeprovider.bundlespace/src/org/eclipse/osbp/runtime/typeprovider/bundlespace/BundleSpaceTypeProviderService.java b/org.eclipse.osbp.runtime.typeprovider.bundlespace/src/org/eclipse/osbp/runtime/typeprovider/bundlespace/BundleSpaceTypeProviderService.java new file mode 100644 index 0000000..e2b4da4 --- /dev/null +++ b/org.eclipse.osbp.runtime.typeprovider.bundlespace/src/org/eclipse/osbp/runtime/typeprovider/bundlespace/BundleSpaceTypeProviderService.java
@@ -0,0 +1,49 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.typeprovider.bundlespace; + +import org.eclipse.osbp.runtime.common.types.IBundleSpace; +import org.eclipse.osbp.runtime.common.types.ITypeProviderService; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; +import org.osgi.service.component.annotations.ReferenceCardinality; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Component(immediate=true) +public class BundleSpaceTypeProviderService implements ITypeProviderService { + + private static final Logger LOGGER = LoggerFactory + .getLogger(BundleSpaceTypeProviderService.class); + + private IBundleSpace bundleSpace; + + @Reference(cardinality = ReferenceCardinality.MANDATORY) + protected void bindBundleSpace(IBundleSpace bundleSpace) { + this.bundleSpace = bundleSpace; + } + + protected void unbindBundleSpace(IBundleSpace bundleSpace) { + this.bundleSpace = null; + } + + @Override + public Class<?> forName(Object clazz, String qualifiedName) { + try { + return bundleSpace.forName(qualifiedName); + } catch (ClassNotFoundException e) { + LOGGER.warn("{}", e.getMessage()); + } + + return null; + } + +}
diff --git a/org.eclipse.osbp.runtime.usernotification/.project b/org.eclipse.osbp.runtime.usernotification/.project new file mode 100644 index 0000000..1721a57 --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/.project
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osbp.runtime.usernotification</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.babel.editor.rbeBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.sonarlint.eclipse.core.sonarlintBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.babel.editor.rbeNature</nature> + </natures> +</projectDescription>
diff --git a/org.eclipse.osbp.runtime.usernotification/LICENSE.txt b/org.eclipse.osbp.runtime.usernotification/LICENSE.txt new file mode 100644 index 0000000..ff42ad4 --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/LICENSE.txt
@@ -0,0 +1,161 @@ +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. \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.usernotification/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.usernotification/META-INF/MANIFEST.MF new file mode 100644 index 0000000..fb3a9c7 --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.osbp.runtime.usernotification +Bundle-Vendor: Eclipse OSBP +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-SymbolicName: org.eclipse.osbp.runtime.usernotification +Bundle-Version: 0.9.0.qualifier +Import-Package: org.osgi.framework;version="1.8.0", + org.osgi.service.component;version="1.2.2", + org.osgi.service.component.annotations;version="1.2.0", + org.osgi.service.event;version="1.3.0", + org.osgi.service.prefs, + org.slf4j;version="1.7.2" +Bundle-ActivationPolicy: lazy +Service-Component: OSGI-INF/org.eclipse.osbp.runtime.notification.impl.UserNotificationService.xml +Require-Bundle: org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)" +Export-Package: org.eclipse.osbp.runtime.notification;version="0.9.0", + org.eclipse.osbp.runtime.notification.impl;x-internal:=true;version="0.9.0"
diff --git a/org.eclipse.osbp.runtime.usernotification/OSGI-INF/org.eclipse.osbp.runtime.notification.impl.UserNotificationService.xml b/org.eclipse.osbp.runtime.usernotification/OSGI-INF/org.eclipse.osbp.runtime.notification.impl.UserNotificationService.xml new file mode 100644 index 0000000..6825f88 --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/OSGI-INF/org.eclipse.osbp.runtime.notification.impl.UserNotificationService.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" deactivate="deactivate" name="org.eclipse.osbp.runtime.notification.impl.UserNotificationService"> + <implementation class="org.eclipse.osbp.runtime.notification.impl.UserNotificationService"/> + <service> + <provide interface="org.eclipse.osbp.runtime.notification.IUserNotificationService"/> + </service> + <reference bind="bindEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static" unbind="unbindEventAdmin"/> +</scr:component> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.usernotification/about.html b/org.eclipse.osbp.runtime.usernotification/about.html new file mode 100644 index 0000000..64c0598 --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/about.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 1, 2016</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> \ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.usernotification/about.ini b/org.eclipse.osbp.runtime.usernotification/about.ini new file mode 100644 index 0000000..7df671f --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/about.ini
@@ -0,0 +1,17 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage= + +# Property "appName" contains name of the application (translated) +appName=%featureName + +# Property "welcomePage" contains path to welcome page (special XML-based format) +welcomePage=
diff --git a/org.eclipse.osbp.runtime.usernotification/about.mappings b/org.eclipse.osbp.runtime.usernotification/about.mappings new file mode 100644 index 0000000..4511a0a --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/about.mappings
@@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=qualifier
diff --git a/org.eclipse.osbp.runtime.usernotification/about.properties b/org.eclipse.osbp.runtime.usernotification/about.properties new file mode 100644 index 0000000..e2df90b --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/about.properties
@@ -0,0 +1,26 @@ +# +# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg) +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Loetz GmbH&Co.KG - initial API and implementation +# + +# NLS_MESSAGEFORMAT_VAR + +featureName=org.eclipse.osbp.runtime.usernotification + +################ blurb property #################################### +featureText=\ +Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\ +All rights reserved. This program and the accompanying materials\n\ +are made available under the terms of the Eclipse Public License v1.0\n\ +which accompanies this distribution, and is available at\n\ +http://www.eclipse.org/legal/epl-v10.html\n\ +\n\ +Contributors:\n\ + Loetz GmbH&Co.KG - implementation\n +################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.runtime.usernotification/build.properties b/org.eclipse.osbp.runtime.usernotification/build.properties new file mode 100644 index 0000000..e79b84a --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/build.properties
@@ -0,0 +1,9 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\ + .,\ + OSGI-INF/,\ + .project,\ + .classpath,\ + LICENSE.txt +src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt
diff --git a/org.eclipse.osbp.runtime.usernotification/pom.xml b/org.eclipse.osbp.runtime.usernotification/pom.xml new file mode 100644 index 0000000..eae59e3 --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/pom.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <artifactId>org.eclipse.osbp.runtime.usernotification</artifactId> + <packaging>eclipse-plugin</packaging> +</project>
diff --git a/org.eclipse.osbp.runtime.usernotification/src/org/eclipse/osbp/runtime/notification/IUserNotificationService.java b/org.eclipse.osbp.runtime.usernotification/src/org/eclipse/osbp/runtime/notification/IUserNotificationService.java new file mode 100644 index 0000000..5da093c --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/src/org/eclipse/osbp/runtime/notification/IUserNotificationService.java
@@ -0,0 +1,114 @@ +/** + * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Florian Pirchner - Initial implementation + */ +package org.eclipse.osbp.runtime.notification; + +import java.util.Dictionary; +import java.util.Map; + +import org.osgi.service.event.EventHandler; + +/** + * Is responsible for sending and retrieving notifications. + * <p> + * IMPORTANT: The notification service ensures, that the OSGi event admin is + * used and not the e4EventBroker. + */ +public interface IUserNotificationService { + + /** + * The name of the default event attribute used to pass data. + */ + public String DATA = "org.eclipse.osbp.data"; //$NON-NLS-1$ + + /** + * Publish event synchronously (the method does not return until the event + * is processed). + * <p> + * If data is a {@link Map} or a {@link Dictionary}, it is passed as is. + * Otherwise, a new Map is constructed and its {@link #DATA} attribute is + * populated with this value. + * + * + * @param userId + * the user id + * @param data + * data to be published with the event + * @return <code>true</code> if this operation was performed successfully; + * <code>false</code> otherwise + */ + public boolean send(String userId, Object data); + + /** + * Publish event asynchronously (this method returns immediately). + * <p> + * If data is a {@link Map} or a {@link Dictionary}, it is passed as is. + * Otherwise, a new Map is constructed and its {@link #DATA} attribute is + * populated with this value. + * + * + * @param userId + * the user id + * @param data + * data to be published with the event + * @return <code>true</code> if this operation was performed successfully; + * <code>false</code> otherwise + */ + public boolean post(String userId, Object data); + + /** + * Subscribe for events on the given topic. + * <p> + * The handler will be called on the UI thread. + * + * + * @param userId + * the user id + * @param eventHandler + * object to call when an event of interest arrives + * @return <code>true</code> if this operation was performed successfully; + * <code>false</code> otherwise + */ + public boolean subscribe(String userId, EventHandler eventHandler); + + /** + * Subscribe for events on the given topic. + * <p> + * The handler will be called on the UI thread if "headless" is set to + * <code>true</code>. + * + * + * @param userId + * the user id + * @param filter + * the LDAP event filter + * @param eventHandler + * object to call when an event of interest arrives + * @param headless + * <code>true</code> if handing of the events does not require + * UI; <code>false</code> otherwise + * @return <code>true</code> if this operation was performed successfully; + * <code>false</code> otherwise + */ + public boolean subscribe(String userId, String filter, + EventHandler eventHandler, boolean headless); + + /** + * Unsubscribe handler previously registered using + * {@link #subscribe(String, EventHandler)}. + * + * @param eventHandler + * previously registered event handler + * @return <code>true</code> if this operation was performed successfully; + * <code>false</code> otherwise + */ + public boolean unsubscribe(EventHandler eventHandler); + +}
diff --git a/org.eclipse.osbp.runtime.usernotification/src/org/eclipse/osbp/runtime/notification/impl/UserNotificationService.java b/org.eclipse.osbp.runtime.usernotification/src/org/eclipse/osbp/runtime/notification/impl/UserNotificationService.java new file mode 100644 index 0000000..7365efe --- /dev/null +++ b/org.eclipse.osbp.runtime.usernotification/src/org/eclipse/osbp/runtime/notification/impl/UserNotificationService.java
@@ -0,0 +1,204 @@ +/******************************************************************************* + * Copyright (c) 2009, 2013 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + * Florian Pirchner - adjustments to osbp code + *******************************************************************************/ +package org.eclipse.osbp.runtime.notification.impl; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Dictionary; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Map; + +import org.eclipse.osbp.runtime.common.event.IEventBroker; +import org.eclipse.osbp.runtime.notification.IUserNotificationService; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +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.component.annotations.Reference; +import org.osgi.service.component.annotations.ReferenceCardinality; +import org.osgi.service.event.Event; +import org.osgi.service.event.EventAdmin; +import org.osgi.service.event.EventConstants; +import org.osgi.service.event.EventHandler; + +// TODO: Auto-generated Javadoc +/** + * The Class UserNotificationService. + */ +@Component +public class UserNotificationService implements IUserNotificationService { + + /** The registrations. */ + private Map<EventHandler, Collection<ServiceRegistration<?>>> registrations = new HashMap<EventHandler, Collection<ServiceRegistration<?>>>(); + + /** The event admin. */ + private EventAdmin eventAdmin; + + /** The context. */ + private ComponentContext context; + + /** + * Instantiates a new user notification service. + */ + public UserNotificationService() { + } + + /** + * Activate. + * + * @param context + * the context + */ + @Activate + protected void activate(ComponentContext context) { + this.context = context; + } + + /** + * Deactivate. + * + * @param context + * the context + */ + @Deactivate + protected void deactivate(ComponentContext context) { + Collection<Collection<ServiceRegistration<?>>> values = new ArrayList<Collection<ServiceRegistration<?>>>( + registrations.values()); + registrations.clear(); + for (Collection<ServiceRegistration<?>> handled : values) { + for (ServiceRegistration<?> registration : handled) { + registration.unregister(); + } + } + + this.context = null; + } + + /** + * Bind event admin. + * + * @param eventAdmin + * the event admin + */ + @Reference(cardinality = ReferenceCardinality.MANDATORY, unbind = "unbindEventAdmin") + protected void bindEventAdmin(EventAdmin eventAdmin) { + this.eventAdmin = eventAdmin; + } + + /** + * Unbind event admin. + * + * @param eventAdmin + * the event admin + */ + protected void unbindEventAdmin(EventAdmin eventAdmin) { + this.eventAdmin = null; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.notification.IUserNotificationService#send(java.lang.String, java.lang.Object) + */ + @Override + public boolean send(String userId, Object data) { + Event event = constructEvent(userId, data); + eventAdmin.sendEvent(event); + return true; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.notification.IUserNotificationService#post(java.lang.String, java.lang.Object) + */ + @Override + public boolean post(String userId, Object data) { + Event event = constructEvent(userId, data); + eventAdmin.postEvent(event); + return true; + } + + /** + * Construct event. + * + * @param userId + * the user id + * @param data + * the data + * @return the event + */ + @SuppressWarnings("unchecked") + private Event constructEvent(String userId, Object data) { + Event event; + if (data instanceof Dictionary<?, ?>) { + event = new Event(userId, (Dictionary<String, ?>) data); + } else if (data instanceof Map<?, ?>) { + event = new Event(userId, (Map<String, ?>) data); + } else { + Dictionary<String, Object> d = new Hashtable<String, Object>(2); + d.put(EventConstants.EVENT_TOPIC, userId); + if (data != null) + d.put(IEventBroker.DATA, data); + event = new Event(userId, d); + } + return event; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.notification.IUserNotificationService#subscribe(java.lang.String, org.osgi.service.event.EventHandler) + */ + @Override + public boolean subscribe(String userId, EventHandler eventHandler) { + return subscribe(userId, null, eventHandler, false); + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.notification.IUserNotificationService#subscribe(java.lang.String, java.lang.String, org.osgi.service.event.EventHandler, boolean) + */ + @Override + public boolean subscribe(String userId, String filter, + EventHandler eventHandler, boolean headless) { + BundleContext bundleContext = context.getBundleContext(); + String[] userIds = new String[] { userId }; + Dictionary<String, Object> d = new Hashtable<String, Object>(); + d.put(EventConstants.EVENT_TOPIC, userIds); + if (filter != null) { + d.put(EventConstants.EVENT_FILTER, filter); + } + ServiceRegistration<?> registration = bundleContext.registerService( + EventHandler.class.getName(), eventHandler, d); + Collection<ServiceRegistration<?>> handled = registrations + .get(eventHandler); + if (handled == null) { + registrations.put(eventHandler, + handled = new ArrayList<ServiceRegistration<?>>()); + } + handled.add(registration); + return true; + } + + /* (non-Javadoc) + * @see org.eclipse.osbp.runtime.notification.IUserNotificationService#unsubscribe(org.osgi.service.event.EventHandler) + */ + @Override + public boolean unsubscribe(EventHandler eventHandler) { + Collection<ServiceRegistration<?>> handled = registrations + .remove(eventHandler); + if (handled == null || handled.isEmpty()) + return false; + for (ServiceRegistration<?> r : handled) { + r.unregister(); + } + return true; + } + +}
diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..94d0e3d --- /dev/null +++ b/pom.xml
@@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--#======================================================================= --> +<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) --> +<!--# All rights reserved. This program and the accompanying materials --> +<!--# are made available under the terms of the Eclipse Public License v1.0 --> +<!--# which accompanies this distribution, and is available at --> +<!--# http://www.eclipse.org/legal/epl-v10.html --> +<!--# --> +<!--# Contributors: --> +<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation --> +<!--#======================================================================= --> + +<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"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.eclipse.osbp.releng.maven</groupId> + <artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId> + <version>0.9.0-SNAPSHOT</version> + <relativePath/> + </parent> + + <groupId>org.eclipse.osbp.runtime</groupId> + <artifactId>org.eclipse.osbp.runtime.aggregator</artifactId> + + <packaging>pom</packaging> + + <properties> + <osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name> + </properties> + + <modules> + <!-- Bundles --> + <module>org.eclipse.osbp.runtime.common</module> + <module>org.eclipse.osbp.runtime.eclipselink.core.fragment</module> + <module>org.eclipse.osbp.runtime.ecore.bundlespace</module> + <module>org.eclipse.osbp.runtime.emf</module> + <module>org.eclipse.osbp.runtime.event</module> + <module>org.eclipse.osbp.runtime.datasource.provider</module> + <module>org.eclipse.osbp.runtime.designer.api</module> + <module>org.eclipse.osbp.runtime.jsr303.validation</module> + <module>org.eclipse.osbp.runtime.logback.fragment</module> + <module>org.eclipse.osbp.runtime.memento</module> + <module>org.eclipse.osbp.runtime.systemextension</module> + <module>org.eclipse.osbp.runtime.typeprovider.bundlespace</module> + <module>org.eclipse.osbp.runtime.usernotification</module> + <module>org.eclipse.osbp.runtime.security</module> + + <!-- Features --> + <module>org.eclipse.osbp.runtime.feature.common</module> + <!-- <module>org.eclipse.osbp.runtime.feature.allinone</module> --> + <module>org.eclipse.osbp.runtime.feature.e4eventmanager</module> + <module>org.eclipse.osbp.runtime.feature.eclipselink.core.fragment</module> + <module>org.eclipse.osbp.runtime.feature.jsr303.validation</module> + <module>org.eclipse.osbp.runtime.feature.datasource.provider</module> + <module>org.eclipse.osbp.runtime.feature.typeprovider.bundlespace</module> + <module>org.eclipse.osbp.runtime.feature.ecore.bundlespace</module> + <!-- <module>org.eclipse.osbp.runtime.feature.allinone.testframework</module> --> + <module>org.eclipse.osbp.runtime.feature.resolverhooks</module> + </modules> + + <build> + <pluginManagement> + <plugins> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.1</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + <plugin> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-compiler-plugin</artifactId> + <version>${tycho-version}</version> + <configuration> + <compilerVersion>1.8</compilerVersion> + <encoding>UTF-8</encoding> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + <plugin> + <groupId>org.eclipse.tycho</groupId> + <artifactId>target-platform-configuration</artifactId> + <version>${tycho-version}</version> + <configuration> + <resolver>p2</resolver> + <pomDependencies>consider</pomDependencies> + <environments> + <environment> + <os>win32</os> + <ws>win32</ws> + <arch>x86_64</arch> + </environment> + <environment> + <os>linux</os> + <ws>gtk</ws> + <arch>x86</arch> + </environment> + <environment> + <os>linux</os> + <ws>gtk</ws> + <arch>x86_64</arch> + </environment> + <environment> + <os>macosx</os> + <ws>cocoa</ws> + <arch>x86_64</arch> + </environment> + </environments> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + +</project>