diff --git a/documentation/CodeHeaders.md b/documentation/CodeHeaders.md new file mode 100644 index 0000000000..533dfe4afb --- /dev/null +++ b/documentation/CodeHeaders.md @@ -0,0 +1,45 @@ +# About this file + +This file explains how to create and maintain copyright headers in source files. + +# Initial header + +``` +/*********************************************************************** + * Copyright (c) {DATE} {INITIAL COPYRIGHT OWNER} {OTHER COPYRIGHT OWNERS}. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Apache License v2.0 which accompanies this distribution. + * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html + * and the Apache License v2.0 is available at + * http://www.opensource.org/licenses/apache2.0.php. + * You may elect to redistribute this code under either of these licenses. + * Contributors: + * {INITIAL AUTHOR} - initial API and implementation + ************************************************************************* +``` + +## Templates +* Company: John Smith (University of Stuttgart) +* Student: John Smith +* Copyright (c) 2013 John Smith (University of Stuttgart). + +# Full information + +Full information is available at: http://www.eclipse.org/legal/copyrightandlicensenotice.php + +# License +Copyright (c) 2014 University of Stuttgart. + +All rights reserved. This program and the accompanying materials +are made available under the terms of the [Eclipse Public License v1.0] +and the [Apache License v2.0] which both accompany this distribution, +and are available at http://www.eclipse.org/legal/epl-v10.html +and http://www.apache.org/licenses/LICENSE-2.0 + +Contributors: +* Oliver Kopp - initial API and implementation + + + [Apache License v2.0]: http://www.apache.org/licenses/LICENSE-2.0.html + [Eclipse Public License v1.0]: http://www.eclipse.org/legal/epl-v10.html diff --git a/documentation/HowToRelease.md b/documentation/HowToRelease.md new file mode 100644 index 0000000000..859cf3adf8 --- /dev/null +++ b/documentation/HowToRelease.md @@ -0,0 +1,26 @@ +# How to do a release + +As the maven release plugin does not yet support bower, the versions in `bower.json` have to be adapted manually. + +- remove `-SNAPSHOT` in `/org.eclipse.repository/bower.json` +- remove `-SNAPSHOT` in `/org.eclipse.winery.topologymodeler/bower.json` +- execute `mvn -B release:prepare` +- increase version number in /org.eclipse.repository/bower.json and add `-SNAPSHOT` +- increase version number in /org.eclipse.winery.topologymodeler/bower.json and add `-SNAPSHOT` +- execute `mvn release:perform` + +# License +Copyright (c) 2013-2014 University of Stuttgart. + +All rights reserved. This program and the accompanying materials +are made available under the terms of the [Eclipse Public License v1.0] +and the [Apache License v2.0] which both accompany this distribution, +and are available at http://www.eclipse.org/legal/epl-v10.html +and http://www.apache.org/licenses/LICENSE-2.0 + +Contributors: +* Oliver Kopp - initial API and implementation + + + [Apache License v2.0]: http://www.apache.org/licenses/LICENSE-2.0.html + [Eclipse Public License v1.0]: http://www.eclipse.org/legal/epl-v10.html diff --git a/documentation/RepositoryLayout.md b/documentation/RepositoryLayout.md new file mode 100644 index 0000000000..5256f3b4d8 --- /dev/null +++ b/documentation/RepositoryLayout.md @@ -0,0 +1,71 @@ +# Layout of the filebased repository + +## Typical layout + +Typically, all TOSCA components have the path `componenttype/ns/id`. + +## Directory `imports` + +This directory stores files belonging to a CSAR. +That means, when a definitions points to an external reference, the file has to be stored at the external location and not inside the repository + +### Directory layout + +`imports////` + +In case no namespace is specified, then `__NONE__` is used as namespace. +Handling of that is currently not supported. + +`id` is a randomly generated id reflecting a single imported file. + +Inside the directory, a `.tosca` is stored containing the import element only. +In future, this can be used to contain the extensibility attributes, which are currently unsupported. + +`location` points to +i) the local file or +ii) to some external definition (absolute URL!) + +Currently, ii is not implemented and the storage is used as mirror only to be able to +a) offer choice of known XML Schema definitions +b) generate a UI for known XML Schemas (current idea: use http://sourceforge.net/projects/xsd2gui/) + +Typically, all TOSCA components have the path `componenttype/ns/id`. +We add `imports` before to group the imports. +The chosen ordering allows to present all available imports for a given import type +by just querying the contents of ``. + +### Handling of the extensibility parts + +Handling of the extensible part of `tImport` is not supported. +A first idea is to store the Import XML Element as file in the respective directory. + +### Special treatment of XSD definitions + +#### Knowing the definitions for a QName + +Currently, all contained XSDs are queried for their defined local names and this set is aggregated. + +The following is an implementation idea: + +Each namespace may contain multiple definitions. +Therefore, each folder `` contains a file `import.properties`, +which provides a mapping of local names to id. +For instance, if `theElement`is defined in `myxmldefs.xsd` (being the human-readable id of the folder), +`index.properties` contains `theElement = myxmldefs.xsd`. +The local name is sufficient as the namespace is given by the parent directory. + +## License +Copyright (c) 2013-2014 University of Stuttgart. + +All rights reserved. This program and the accompanying materials +are made available under the terms of the [Eclipse Public License v1.0] +and the [Apache License v2.0] which both accompany this distribution, +and are available at http://www.eclipse.org/legal/epl-v10.html +and http://www.apache.org/licenses/LICENSE-2.0 + +Contributors: +* Oliver Kopp - initial API and implementation + + + [Apache License v2.0]: http://www.apache.org/licenses/LICENSE-2.0.html + [Eclipse Public License v1.0]: http://www.eclipse.org/legal/epl-v10.html diff --git a/documentation/TOSCA specification/.gitignore b/documentation/TOSCA specification/.gitignore new file mode 100644 index 0000000000..664db108e9 --- /dev/null +++ b/documentation/TOSCA specification/.gitignore @@ -0,0 +1,2 @@ +*.png +*.svg diff --git a/documentation/TOSCA specification/TOSCA-v1.0-os-attributes.xlsx b/documentation/TOSCA specification/TOSCA-v1.0-os-attributes.xlsx new file mode 100644 index 0000000000..fb03f8cdae Binary files /dev/null and b/documentation/TOSCA specification/TOSCA-v1.0-os-attributes.xlsx differ diff --git a/documentation/TOSCA specification/TOSCA-v1.0-os-class-diagram.pdf b/documentation/TOSCA specification/TOSCA-v1.0-os-class-diagram.pdf new file mode 100644 index 0000000000..3ed41fc12d Binary files /dev/null and b/documentation/TOSCA specification/TOSCA-v1.0-os-class-diagram.pdf differ diff --git a/documentation/TOSCA specification/TOSCA-v1.0-os-class-diagram.plantuml b/documentation/TOSCA specification/TOSCA-v1.0-os-class-diagram.plantuml new file mode 100644 index 0000000000..d1860783e5 --- /dev/null +++ b/documentation/TOSCA specification/TOSCA-v1.0-os-class-diagram.plantuml @@ -0,0 +1,470 @@ +/*********************************************************************** + * Copyright (c) 2013-2014 University of Stuttgart. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Apache License v2.0 which accompanies this distribution. + * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html + * and the Apache License v2.0 is available at + * http://www.opensource.org/licenses/apache2.0.php. + * You may elect to redistribute this code under either of these licenses. + * Contributors: + * Oliver Kopp - initial implementation + ************************************************************************* + +This model describes the XSD of TOSCA-v1.0.xsd as released by TOSCA v1.0 cos01. +URL: http://docs.oasis-open.org/tosca/TOSCA/v1.0/os/schemas/TOSCA-v1.0.xsd +Specification: http://docs.oasis-open.org/tosca/TOSCA/v1.0/TOSCA-v1.0.html + +@startuml + +'skinparam monochrome true +'Chooses LightGray as background color +'We're better off with manual setting + +skinparam class { + BackgroundColor White + ArrowColor Black + BorderColor Black + LegendBackgroundColor White +} + +skinparam stereotypeCBackgroundColor LightGray + +skinparam noteBackgroundColor White +skinparam noteBorderColor Black + +'required for SVG +skinparam defaultFontName sans-serif + + +Title TOSCA v1.0 as UML class diagram. This is not an official OASIS document. No warranty. (c) University of Stuttgart. Dual-licensed under EPL and ASLv2. Version 2014-01-29. + +legend right +== Note on the model +The model stays close to the XSD with following exceptions: +* Containers such as tTags are ignored: A class is then wired using a 1:n relation to the elements nested in the container +* Relations to TOSCA artifacts are encoded. +** E.g., a QName modelling a substitutable Node Type is modeled as reference to a Node Type +** *Ref elements are not modeled, the association is drawn directly +*** E.g., tCapabilityRef is not contained in the model +* xsd types are presented more relaxed. E.g., xsd:string becomes String + +== Conventions +* green: required (+ prefix) +* all others: optional +endlegend + + + +'OS line 19 +class tExtensibleElements { + documentation + contents of other namespaces +} + +'OS line 26 +tExtensibleElements <|-- tImport +class tImport { + anyURI namespace + anyURI location + +(anyURI) importType +} + +'OS line 42 +tExtensibleElements <|-- tDefinitions +class tDefinitions { + +ID id + String name + anyURI targetNamespace + List Types +} +tDefinitions *-- "*" tExtension +tDefinitions *-- "*" tImport + +'OS line 61 +tDefinitions *-- "*" tServiceTemplate +tDefinitions *-- "*" tNodeType +tDefinitions *-- "*" tNodeTypeImplementation +tDefinitions *-- "*" tRelationshipType +tDefinitions *-- "*" tRelationshipTypeImplementation +tDefinitions *-- "*" tCapabilityType +tDefinitions *-- "*" tArtifactType +tDefinitions *-- "*" tArtifactTemplate +tDefinitions *-- "*" tPolicyType +tDefinitions *-- "*" tPolicyTemplate + +'OS line 81 +tExtensibleElements <|-- tServiceTemplate +class tServiceTemplate { + +ID id + String name + anyURI targetNamespace +} +tServiceTemplate *-- "*" tTag +tServiceTemplate *-- "*" tBoundaryDefinitions +tServiceTemplate *-- tTopologyTemplate +tServiceTemplate *-- "*" tPlan +tServiceTemplate --> "0..1" tNodeType : substitutable + +'OS line 102 +class tTag { + +String name + +String value +} + +'OS line 106 +class tBoundaryDefinitions { + Properties +} +tBoundaryDefinitions *-- "*" tPropertyMapping +tBoundaryDefinitions *-- "*" tPropertyConstraint +tBoundaryDefinitions --> "*" tRequirement +tBoundaryDefinitions --> "*" tCapability +tBoundaryDefinitions *-- "*" tPolicy +tBoundaryDefinitions *-- "*" tExportedInterface + +'OS line 159 +class tPropertyMapping { + +String serviceTemplatePropertyRef + +String targetPropertyRef +} +tPropertyMapping --> "0..1" tNodeTemplate +tPropertyMapping --> "0..1" tRelationshipTemplate +tPropertyMapping --> "0..1" tRequirement +tPropertyMapping --> "0..1" tCapability + +'OS lines 164 to 171 define tRequiermentRef and tCapabilityRef +'to enable referencing requirements and capabilities +'We directly point to the elements + +'OS line 172 +abstract class tEntityType +tExtensibleElements <|-- tEntityType +class tEntityType { +' DerivedFrom is rendered as self-association in all subclasses +' DerivedFrom + PropertiesDefinition + +NCName name + Boolean abstract [no] + Boolean final [no] + anyURI targetNamespace +} +tEntityType *-- "*" tTag + +'OS line 196 +abstract class tEntityTemplate +tExtensibleElements <|-- tEntityTemplate +class tEntityTemplate { + Properties + +xs:ID id + +QName type +} +tEntityTemplate *-- "*" tPropertyConstraint + +'OS line 219 +tEntityTemplate <|-- tNodeTemplate +class tNodeTemplate #DDDDDD/EEEEEE { + String name + int minInstances [1] + int|unbounded maxInstances [1] +} +tNodeTemplate *-- "*" tRequirement +tNodeTemplate *-- "*" tCapability +tNodeTemplate *-- "*" tPolicy +tNodeTemplate *-- "*" tDeploymentArtifact +'due to the subclassing of tEntityTemplate +'There, the type attribute references the parent class +tNodeTemplate --> tNodeType : type + +'OS line 268 +tExtensibleElements <|-- tTopologyTemplate +class tTopologyTemplate +'no attributes exist +tTopologyTemplate *-- "*" tNodeTemplate +tTopologyTemplate *-- "*" tRelationshipTemplate + +'OS line 278 +tEntityType <|-- tRelationshipType +class tRelationshipType #DDDDDD/EEEEEE +'no attributes +'InstanceStates +tRelationshipType *-- "*" tTopologyElementInstanceState +'SourceInterfaces +tRelationshipType *-- "*" tInterface : SourceInterface +'TargetInterfaces +tRelationshipType *-- "*" tInterface : TargetInterface +'ValidSource +tRelationshipType --> "0..1" tNodeType : ValidSource +tRelationshipType --> "0..1" tRequirementType : ValidSource +'ValidTarget +tRelationshipType --> "0..1" tNodeType : ValidTarget +tRelationshipType --> "0..1" tCapabilityType : ValidTarget +'DerivedFrom +tRelationshipType --> "0..1" tRelationshipType : DerivedFrom + + +'OS line 311 +tExtensibleElements <|-- tRelationshipTypeImplementation +class tRelationshipTypeImplementation { + +NCName name + anyURI targetNamespace + Boolean abstract + Boolean final +} +tRelationshipTypeImplementation --> tRelationshipType +tRelationshipTypeImplementation *-- "*" tTag +tRelationshipTypeImplementation --> "0..1" tRelationshipTypeImplementation : DerivedFrom +tRelationshipTypeImplementation *-- "*" tRequiredContainerFeature +tRelationshipTypeImplementation *-- "*" tImplementationArtifact + +'OS line 332 +tEntityTemplate <|-- tRelationshipTemplate +class tRelationshipTemplate #DDDDDD/EEEEEE { + String name +} +'SourceElement +tRelationshipTemplate --> "0..1" tNodeTemplate : SourceElement +tRelationshipTemplate --> "0..1" tRequirement : SourceElement +'TargetElement +tRelationshipTemplate --> "0..1" tNodeTemplate : TargetElement +tRelationshipTemplate --> "0..1" tCapability : TargetElement +' +tRelationshipTemplate *-- "*" tRelationshipConstraint +'due to the subclassing of tEntityTemplate +tRelationshipTemplate --> tRelationshipType + +'OS line 349 +'not modeled as t, but directly nested in tRelationshipTemplate +'We model it as t to be consistent with the other definitions +class tRelationshipConstraint { + +anyURI constraintType +} + +'OS line 365 +tEntityType <|-- tNodeType +class tNodeType #DDDDDD/EEEEEE +'No new attributes +' +tNodeType *-- "*" tRequirementDefinition +tNodeType *-- "*" tCapabilityDefinition +tNodeType *-- "*" tTopologyElementInstanceState +tNodeType *-- "*" tInterface +'DerivedFrom +tNodeType --> "0..1" tNodeType : DerivedFrom + +'OS line 395 +tExtensibleElements <|-- tNodeTypeImplementation +class tNodeTypeImplementation { + +NCname name + anyURI targetNamespace + Boolean abstract + Boolean final +} +tNodeTypeImplementation --> tNodeType +tNodeTypeImplementation *-- "*" tTag +tNodeTypeImplementation --> "0..1" tNodeTypeImplementation : DerivedFrom +tNodeTypeImplementation *-- "*" tRequiredContainerFeature +tNodeTypeImplementation *-- "*" tDeploymentArtifact +tNodeTypeImplementation *-- "*" tImplementationArtifact + +'OS line 417 +tEntityType <|-- tRequirementType +class tRequirementType +tRequirementType --> "0..1" tCapabilityType : requiredCapabilityType +'DerivedFrom +tRequirementType --> "0..1" tRequirementType : DerivedFrom + +'OS line 424 +tExtensibleElements <|-- tRequirementDefinition +class tRequirementDefinition { + +String name + int lowerBound [1] + int|unbounded upperBound [1] +} +tRequirementDefinition *-- "*" tConstraint +tRequirementDefinition --> tRequirementType + +'OS line 458 +tEntityTemplate <|-- tRequirement +class tRequirement { + +String name +} +'"name" is also used to point to tRequirementDefinition +tRequirement --> tRequirementDefinition : name +'due to the subclassing of tEntityTemplate +tRequirement --> tRequirementType + +'OS line 465 +tEntityType <|-- tCapabilityType +'DerivedFrom +tCapabilityType --> "0..1" tCapabilityType : DerivedFrom + +'OS line 470 +tExtensibleElements <|-- tCapabilityDefinition +class tCapabilityDefinition { + +String name + int lowerBound [1] + int|unbounded upperBound [1] +} +tCapabilityDefinition *-- "*" tConstraint +tCapabilityDefinition --> tCapabilityType + +'OS line 504 +tEntityTemplate <|-- tCapability +class tCapability { + +String name +} +'"name" is also used to point to tCapabilityDefinition +tCapability --> tCapabilityDefinition : name +'due to the subclassing of tEntityTemplate +tCapability --> tCapabilityType + +'OS line 511 +tEntityType <|-- tArtifactType +tArtifactType --> "0..1" tArtifactType : DerivedFrom + +'OS line 516 +tEntityTemplate <|-- tArtifactTemplate +'PDF line 2607 +class tArtifactTemplate { + String name +} +tArtifactTemplate *-- "*" tArtifactReference +'due to the subclassing of tEntityTemplate +tArtifactTemplate --> tArtifactType + +'OS line 537 +tExtensibleElements <|-- tDeploymentArtifact +class tDeploymentArtifact { + +String Name +} +tDeploymentArtifact --> tArtifactType +tDeploymentArtifact --> "0..1" tArtifactTemplate + +'OS line 557 +tExtensibleElements <|-- tImplementationArtifact +class tImplementationArtifact { + anyURI interfaceName + String operationName +} +tImplementationArtifact --> tArtifactType +tImplementationArtifact --> "0..1" tArtifactTemplate + +'OS line 573 +tExtensibleElements <|-- tPlan +class tPlan { + +ID id + String name + +anyURI planType + +anyURI languageUsed + PlanModel | PlanModelReference +} +tPlan *-- "0..1" tCondition : Precondition +tPlan *-- "*" tParameter : InputParamter +tPlan *-- "*" tParameter : OutputParamter + +'OS line 614 +tEntityType <|-- tPolicyType +class tPolicyType { + anyURI policyLanguage +} +'AppliesTo/NodeTypeReference: CS02 line 631 +tPolicyType --> "*" tNodeType : tAppliesTo/NodeTypeReference +'DerivedFrom +tPolicyType --> "0..1" tPolicyType : DerivedFrom + +'OS line 624 +tEntityTemplate <|-- tPolicyTemplate +class tPolicyTemplate { + String name +} +'due to inheritance of tEntityTemplate +tPolicyTemplate --> tPolicyType + +'OS line 640 +tExtensibleElements <|-- tPolicy +class tPolicy { + String name +} +tPolicy --> tPolicyType +tPolicy --> "0..1" tPolicyTemplate + +'OS line 649 +class tConstraint { + +anyURI constraintType +} + +'OS line 655 +tConstraint <|-- tPropertyConstraint +class tPropertyConstraint { + +String property +} + +'OS line 671 +tExtensibleElements <|-- tExtension +class tExtension { + +anyURI namespace + Boolean mustUnderstand [yes] +} + +'OS line 679 +class tParameter { + +String name + +String type + Boolean required [yes] +} + +'OS line 684 +class tInterface { + +anyURI name 'NCName is a subset of anyURI +} +tInterface *-- tOperation + +'OS line 690 +class tExportedInterface { + +anyURI name +} +tExportedInterface --> "1..*" tExportedOperation + +'OS line 696 +tExtensibleElements <|-- tOperation +class tOperation { + +NCName name +} +tOperation *-- "*" tParameter : InputParameters +tOperation *-- "*" tParameter : OutputParamters + +'OS line 719 +class tExportedOperation { + +NCName name + +anyURI interfaceName + +NCName operationName +} +tExportedOperation --> "0..1" tNodeTemplate +tExportedOperation --> "0..1" tRelationshipTemplate +tExportedOperation --> "0..1" tPlan + + +'OS line 743 +class tCondition { + +anyURI expressionLanguage +} + +'OS line 751 +'tTopologyElementInstanceState does not exist directly, but to be consistent with the others, we introduce it +class tTopologyElementInstanceState { + anyURI state +} + +'OS line 758 +class tArtifactReference { + Include + Exclude + +anyURI reference +} + +'OS line 773 +class tRequiredContainerFeature { + +anyURI feature +} +@enduml diff --git a/documentation/TOSCA specification/startplantuml.bat b/documentation/TOSCA specification/startplantuml.bat new file mode 100644 index 0000000000..9da178a845 --- /dev/null +++ b/documentation/TOSCA specification/startplantuml.bat @@ -0,0 +1,20 @@ +:/*********************************************************************** +: * Copyright (c) 2013-2014 University of Stuttgart. +: * All rights reserved. This program and the accompanying materials +: * are made available under the terms of the Eclipse Public License v1.0 +: * and Apache License v2.0 which accompanies this distribution. +: * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html +: * and the Apache License v2.0 is available at +: * http://www.opensource.org/licenses/apache2.0.php. +: * You may elect to redistribute this code under either of these licenses. +: * Contributors: +: * Oliver Kopp - initial implementation +: ************************************************************************* + +@echo off +echo Generating SVG... +SET PLANTUML=C:\Users\Oliver\BTSync\plantuml.jar +java -jar %PLANTUML% -tsvg TOSCA-v1.0-os-class-diagram.plantuml +echo Generating PDF... +inkscape -z -D --file=TOSCA-v1.0-os-class-diagram.svg --export-pdf=TOSCA-v1.0-os-class-diagram.pdf +echo Done diff --git a/eclipse-config/README.md b/eclipse-config/README.md new file mode 100644 index 0000000000..2a9afd7bdf --- /dev/null +++ b/eclipse-config/README.md @@ -0,0 +1,24 @@ +# Howto + +Java -> Code Style -> Clean Up: cleanup.xml +Formatter -> formatter_settings.xml +Code Templates: codetemplates.xml + +Java -> Editor -> Templates: java_editor_templates.xml + +Save Actions: follow eclipse_save_actions*.png + +# License +Copyright (c) 2012-2014 University of Stuttgart. + +All rights reserved. This program and the accompanying materials +are made available under the terms of the [Eclipse Public License v1.0] +and the [Apache License v2.0] which both accompany this distribution, +and are available at http://www.eclipse.org/legal/epl-v10.html +and http://www.apache.org/licenses/LICENSE-2.0 + +Contributors: +* Oliver Kopp - initial API and implementation + + [Eclipse Public License v1.0]: http://www.eclipse.org/legal/epl-v10.html + [Apache License v2.0]: http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/eclipse-config/cleanup.xml b/eclipse-config/cleanup.xml new file mode 100644 index 0000000000..3f17ea0c69 --- /dev/null +++ b/eclipse-config/cleanup.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse-config/codetemplates.xml b/eclipse-config/codetemplates.xml new file mode 100644 index 0000000000..4420690c01 --- /dev/null +++ b/eclipse-config/codetemplates.xml @@ -0,0 +1,32 @@ + \ No newline at end of file diff --git a/eclipse-config/eclipse_save_actions.png b/eclipse-config/eclipse_save_actions.png new file mode 100644 index 0000000000..c1c1583e74 Binary files /dev/null and b/eclipse-config/eclipse_save_actions.png differ diff --git a/eclipse-config/eclipse_save_actions_1_code_organizing.png b/eclipse-config/eclipse_save_actions_1_code_organizing.png new file mode 100644 index 0000000000..0edc3d6286 Binary files /dev/null and b/eclipse-config/eclipse_save_actions_1_code_organizing.png differ diff --git a/eclipse-config/eclipse_save_actions_2_code_style.png b/eclipse-config/eclipse_save_actions_2_code_style.png new file mode 100644 index 0000000000..11a5ed569c Binary files /dev/null and b/eclipse-config/eclipse_save_actions_2_code_style.png differ diff --git a/eclipse-config/eclipse_save_actions_3_member_accesses.png b/eclipse-config/eclipse_save_actions_3_member_accesses.png new file mode 100644 index 0000000000..62525bbe37 Binary files /dev/null and b/eclipse-config/eclipse_save_actions_3_member_accesses.png differ diff --git a/eclipse-config/eclipse_save_actions_4_missing_code.png b/eclipse-config/eclipse_save_actions_4_missing_code.png new file mode 100644 index 0000000000..6210a52114 Binary files /dev/null and b/eclipse-config/eclipse_save_actions_4_missing_code.png differ diff --git a/eclipse-config/eclipse_save_actions_5_unnecessary_code.png b/eclipse-config/eclipse_save_actions_5_unnecessary_code.png new file mode 100644 index 0000000000..7680ee4819 Binary files /dev/null and b/eclipse-config/eclipse_save_actions_5_unnecessary_code.png differ diff --git a/eclipse-config/formatter_settings.xml b/eclipse-config/formatter_settings.xml new file mode 100644 index 0000000000..59f208f026 --- /dev/null +++ b/eclipse-config/formatter_settings.xml @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse-config/java_editor_templates.xml b/eclipse-config/java_editor_templates.xml new file mode 100644 index 0000000000..970fcfc898 --- /dev/null +++ b/eclipse-config/java_editor_templates.xml @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/graphics/winery_fav_icon.pptx b/graphics/winery_fav_icon.pptx new file mode 100644 index 0000000000..2037857a12 Binary files /dev/null and b/graphics/winery_fav_icon.pptx differ diff --git a/org.eclipse.winery.highlevelrestapi/.gitignore b/org.eclipse.winery.highlevelrestapi/.gitignore new file mode 100644 index 0000000000..948b942d49 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/.gitignore @@ -0,0 +1,10 @@ +.classpath +/.gradle +.settings +.project +/.sonar +/bin +/build +sonar-project.properties +/src/main/resources/rebel.xml +/target diff --git a/org.eclipse.winery.highlevelrestapi/LICENSE-ASL.txt b/org.eclipse.winery.highlevelrestapi/LICENSE-ASL.txt new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/LICENSE-ASL.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/org.eclipse.winery.highlevelrestapi/LICENSE-EPL.txt b/org.eclipse.winery.highlevelrestapi/LICENSE-EPL.txt new file mode 100644 index 0000000000..5d80026f8e --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/LICENSE-EPL.txt @@ -0,0 +1,227 @@ +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. diff --git a/org.eclipse.winery.highlevelrestapi/README.md b/org.eclipse.winery.highlevelrestapi/README.md new file mode 100644 index 0000000000..fa1820b189 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/README.md @@ -0,0 +1,8 @@ +This project provides a wrapper around org.apache.commons.httpclient. + +It is independent of Winery itself as Winery uses JAX-RS. +The generated implementation artifacts, however, rely on this package. + +## Build fat JARs +To build a fatJar of the HighLevelRestAPI which also contains all the dependencies use the maven profile fatJar (i.e., run `mvn clean package -P fatJar`). +Maven will create a JAR called `org.eclipse.winery.highlevelrestapi-*-jar-with-dependencies.jar` in `/target`. \ No newline at end of file diff --git a/org.eclipse.winery.highlevelrestapi/about.html b/org.eclipse.winery.highlevelrestapi/about.html new file mode 100644 index 0000000000..070c2de1f9 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/about.html @@ -0,0 +1,117 @@ + + + + +About + + +

About This Content

+ +

January 24, 2014

+

License

+ +

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”) +and Apache License Version 2.0. +A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html +and a copy of the Apache License Version 2.0 is available at http://www.opensource.org/licenses/apache2.0.php. +You may elect to redistribute this code under either of these licenses. +For purposes of the EPL, “Program” will mean the Content. +

+ +

+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 and Apache License 2.0 still apply to any source code +in the Content and such source code may be obtained at http://www.eclipse.org. +

+ +

Third Party Content

+ +

Java Libraries

+ +
Apache Commons Codec – Version 1.3
+ + + + + + + + + +
URLhttp://commons.apache.org/proper/commons-codec/
LicenseApache 2.0. A copy of the license is contained in the file Apache-LICENSE-2.0.txt and is also available at http://www.apache.org/licenses/LICENSE-2.0
+ +
Apache Commons HTTP Client – Version 3.1
+ + + + + + + + + +
URLhttp://hc.apache.org/httpclient-3.x/
LicenseApache 2.0. A copy of the license is contained in the file Apache-LICENSE-2.0.txt and is also available at http://www.apache.org/licenses/LICENSE-2.0
+ +
Logback Classic – Version 1.1.1
+ + + + + + + + + +
URLhttp://logback.qos.ch/
LicenseEPL/LGPL dual license. + EPL: http://www.eclipse.org/legal/epl-v10.html. + LGPL v2.1: http://www.gnu.org/licenses/old-licenses/lgpl-2.1. + A copy of the license is contained in the file LICENSE-logback.txt and is also available at http://logback.qos.ch/license.html. + The Eclipse Foundation elects to include this software in this distribution under the EPL license.
+ +
Logback Core – Version 1.1.1
+ + + + + + + + + +
URLhttp://logback.qos.ch/
LicenseEPL/LGPL dual license. + EPL: http://www.eclipse.org/legal/epl-v10.html. + LGPL v2.1: http://www.gnu.org/licenses/old-licenses/lgpl-2.1. + A copy of the license is contained in the file LICENSE-logback.txt and is also available at http://logback.qos.ch/license.html. + The Eclipse Foundation elects to include this software in this distribution under the EPL license.
+ +
SLF4J: slf4j-api – Version 1.7.6
+ + + + + + + + + +
URLhttp://www.slf4j.org/
LicenseMIT. A copy of the license is contained in the file LICENSE-slf4j-api.txt and is also available at http://www.slf4j.org/license.html
+ +
SLF4J: jcl-over-slf4j – Version 1.7.6
+ + + + + + + + + +
URLhttp://www.slf4j.org/legacy.html
LicenseApache 2.0. A copy of the license is contained in the file Apache-LICENSE-2.0.txt and is also available at http://www.apache.org/licenses/LICENSE-2.0
+ + + \ No newline at end of file diff --git a/org.eclipse.winery.highlevelrestapi/about_files/Apache-LICENSE-2.0.txt b/org.eclipse.winery.highlevelrestapi/about_files/Apache-LICENSE-2.0.txt new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/about_files/Apache-LICENSE-2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/org.eclipse.winery.highlevelrestapi/about_files/LICENSE-logback.txt b/org.eclipse.winery.highlevelrestapi/about_files/LICENSE-logback.txt new file mode 100644 index 0000000000..b4fe24e02a --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/about_files/LICENSE-logback.txt @@ -0,0 +1,15 @@ +Logback LICENSE +--------------- + +Logback: the reliable, generic, fast and flexible logging framework. +Copyright (C) 1999-2012, QOS.ch. All rights reserved. + +This program and the accompanying materials are dual-licensed under +either the terms of the Eclipse Public License v1.0 as published by +the Eclipse Foundation + + or (per the licensee's choosing) + +under the terms of the GNU Lesser General Public License version 2.1 +as published by the Free Software Foundation. + diff --git a/org.eclipse.winery.highlevelrestapi/about_files/LICENSE-slf4j-api.txt b/org.eclipse.winery.highlevelrestapi/about_files/LICENSE-slf4j-api.txt new file mode 100644 index 0000000000..37050c9568 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/about_files/LICENSE-slf4j-api.txt @@ -0,0 +1,21 @@ + Copyright (c) 2004-2013 QOS.ch + All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/org.eclipse.winery.highlevelrestapi/notice.html b/org.eclipse.winery.highlevelrestapi/notice.html new file mode 100644 index 0000000000..122ebbc1b9 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/notice.html @@ -0,0 +1,7 @@ + + +

All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 and Apache License v2.0 which accompanies this distribution. +The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html and the Apache License v2.0 is available at http://www.opensource.org/licenses/apache2.0.php. +You may elect to redistribute this code under either of these licenses.

+ + \ No newline at end of file diff --git a/org.eclipse.winery.highlevelrestapi/pom.xml b/org.eclipse.winery.highlevelrestapi/pom.xml new file mode 100644 index 0000000000..cbdd5518a3 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/pom.xml @@ -0,0 +1,143 @@ + + + + 4.0.0 + org.eclipse.winery + 0.1.7-SNAPSHOT + org.eclipse.winery.highlevelrestapi + jar + http://www.eclipse.org/winery + + Eclipse.org - Winery Project + http://www.eclipse.org/winery + + + bugzilla + https://bugs.eclipse.org/bugs + + 2012 + + + Winery Developer List + winery-dev@eclipse.org + http://dev.eclipse.org/mhonarc/lists/winery-dev + + + + + Eclipse Public License v1.0 + http://www.eclipse.org/legal/epl-v10.html + repo + Standard Eclipse Licence + + + Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0 + repo + + + + UTF-8 + + + + + true + + default + + none + + + + fatJar + + package + + + + + + commons-codec + commons-codec + 1.3 + + + + commons-httpclient + commons-httpclient + 3.1 + + + + commons-logging + commons-logging + + + + + ch.qos.logback + logback-classic + 1.1.1 + compile + + + org.slf4j + jcl-over-slf4j + 1.7.6 + compile + + + junit + junit + 4.11 + test + + + + + + + org.apache.maven.wagon + wagon-ssh-external + 2.5 + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.4 + + + jar-with-dependencies + + + + + assemble-all + ${package.fatJar} + + single + + + + + + + diff --git a/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/HighLevelRestApi.java b/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/HighLevelRestApi.java new file mode 100644 index 0000000000..376d0da250 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/HighLevelRestApi.java @@ -0,0 +1,163 @@ +/******************************************************************************* + * Copyright (c) 2013 University of Stuttgart. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and the Apache License 2.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * Uwe Breitenbücher - initial API and implementation + * Kálmán Képes - improvements + *******************************************************************************/ +package org.eclipse.winery.highlevelrestapi; + +import org.apache.commons.httpclient.HttpMethodBase; +import org.apache.commons.httpclient.NameValuePair; +import org.apache.commons.httpclient.methods.DeleteMethod; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.methods.PutMethod; + +/** + * This class wraps HTTP-Method functionality and thereby abstracts from low + * level code to simplify the usage. + */ +public class HighLevelRestApi { + + /** + * This method implements the HTTP Put Method + * + * @param uri Resource URI + * @param requestPayload Content which has to be put into the Resource + * @return ResponseCode of HTTP Interaction + */ + @SuppressWarnings("deprecation") + public static HttpResponseMessage Put(String uri, String requestPayload, String acceptHeaderValue) { + + PutMethod method = new PutMethod(uri); + // requestPayload = "" + + // requestPayload; + + HighLevelRestApi.setAcceptHeader(method, acceptHeaderValue); + method.setRequestBody(requestPayload); + + HttpResponseMessage responseMessage = LowLevelRestApi.executeHttpMethod(method); + + // kill ", + ""); + // @formatter:on + responseMessage.setResponseBody(temp); + } +} diff --git a/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/HttpMethod.java b/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/HttpMethod.java new file mode 100644 index 0000000000..fedd3f0ec9 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/HttpMethod.java @@ -0,0 +1,19 @@ +/******************************************************************************* + * Copyright (c) 2013 University of Stuttgart. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and the Apache License 2.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * Uwe Breitenbücher - initial API and implementation + *******************************************************************************/ +package org.eclipse.winery.highlevelrestapi; + +/** + * This enum is intended to simplify identifying different HTTP-methods + */ +public enum HttpMethod { + PUT, POST, GET, DELETE +} \ No newline at end of file diff --git a/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/HttpResponseMessage.java b/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/HttpResponseMessage.java new file mode 100644 index 0000000000..14888af31a --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/HttpResponseMessage.java @@ -0,0 +1,50 @@ +/******************************************************************************* + * Copyright (c) 2013 University of Stuttgart. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and the Apache License 2.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * Uwe Breitenbücher - initial API and implementation + *******************************************************************************/ +package org.eclipse.winery.highlevelrestapi; + +/** + */ +public class HttpResponseMessage { + + private int statusCode; + private String responseBody; + + + /** + * @return the statusCode + */ + public int getStatusCode() { + return this.statusCode; + } + + /** + * @param statusCode the statusCode to set + */ + protected void setStatusCode(int statusCode) { + this.statusCode = statusCode; + } + + /** + * @return the responseBody + */ + public String getResponseBody() { + return this.responseBody; + } + + /** + * @param responseBody the responseBody to set + */ + protected void setResponseBody(String responseBody) { + this.responseBody = responseBody; + } + +} diff --git a/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/LowLevelRestApi.java b/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/LowLevelRestApi.java new file mode 100644 index 0000000000..a99bb8f6b4 --- /dev/null +++ b/org.eclipse.winery.highlevelrestapi/src/main/java/org/eclipse/winery/highlevelrestapi/LowLevelRestApi.java @@ -0,0 +1,78 @@ +/******************************************************************************* + * Copyright (c) 2013 University of Stuttgart. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and the Apache License 2.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * Uwe Breitenbücher - initial API and implementation + * Kálmán Képes - improvements + *******************************************************************************/ +package org.eclipse.winery.highlevelrestapi; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpMethod; + +/** + * This static-class eases HTTP-method execution by self-managed fault-handling + * and automated Response-information processing + */ +public class LowLevelRestApi { + + // Local HttpClient used for every communication (Singleton implementation) + private static HttpClient httpClient = new HttpClient(); + + + /** + * Executes a passed HttpMethod (Method type is either PUT, POST, GET or + * DELETE) and returns a HttpResponseMessage + * + * @param method Method to execute + * @return HttpResponseMessage which contains all information about the + * execution + */ + public static HttpResponseMessage executeHttpMethod(HttpMethod method) { + + HttpResponseMessage responseMessage = null; + + try { + System.out.println("Method invocation on URI: \n"); + System.out.println(method.getURI().toString()); + // Execute Request + LowLevelRestApi.httpClient.executeMethod(method); + responseMessage = LowLevelRestApi.extractResponseInformation(method); + + } catch (Exception e) { + e.printStackTrace(); + } finally { + + // Release Connection anyway + method.releaseConnection(); + } + + // Extract response information and return + return responseMessage; + } + + /** + * Extracts the response information from an executed HttpMethod + * + * @param method Executed Method + * @return Packaged response information + */ + private static HttpResponseMessage extractResponseInformation(HttpMethod method) { + // Create and return HttpResponseMethod + HttpResponseMessage responseMessage = new HttpResponseMessage(); + responseMessage.setStatusCode(method.getStatusCode()); + try { + responseMessage.setResponseBody(method.getResponseBodyAsString()); + } catch (Exception e) { + e.printStackTrace(); + } + return responseMessage; + + } + +}