diff options
author | Ed.Willink | 2012-04-17 18:16:34 +0000 |
---|---|---|
committer | Ed.Willink | 2012-04-17 18:16:34 +0000 |
commit | 0b6e62267bfe229105f8a39b409ef79ba2df3cca (patch) | |
tree | 73ec343a322431dcf4c8274a99a4077d131990ad /archive | |
parent | b7d67c720d9c98e6a0e36c469bf1c593baf8b24c (diff) | |
download | org.eclipse.qvtd-0b6e62267bfe229105f8a39b409ef79ba2df3cca.tar.gz org.eclipse.qvtd-0b6e62267bfe229105f8a39b409ef79ba2df3cca.tar.xz org.eclipse.qvtd-0b6e62267bfe229105f8a39b409ef79ba2df3cca.zip |
[unrelated] Move more old files to archive
Diffstat (limited to 'archive')
55 files changed, 4102 insertions, 0 deletions
diff --git a/archive/org.eclipse.qvt.declarative.ecore.redistribution-feature/ReadMe.txt b/archive/org.eclipse.qvt.declarative.ecore.redistribution-feature/ReadMe.txt new file mode 100644 index 000000000..bea710acf --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.ecore.redistribution-feature/ReadMe.txt @@ -0,0 +1 @@ +This feature is obsolete. The ocl.edit plugins it originally supported are now available from the MDT/OCL project. diff --git a/archive/org.eclipse.qvt.declarative.editor.redistribution-feature/ReadMe.txt b/archive/org.eclipse.qvt.declarative.editor.redistribution-feature/ReadMe.txt new file mode 100644 index 000000000..ca76d14f1 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.editor.redistribution-feature/ReadMe.txt @@ -0,0 +1 @@ +This feature is obsolete. The variant org.eclipse.imp.runtime plugin it originally supported is no longer necessary. diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/.classpath b/archive/org.eclipse.qvt.declarative.importer.roseuml/.classpath new file mode 100644 index 000000000..5fcb035d7 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/.classpath @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" output="bin.tasks" path="tasks"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/.cvsignore b/archive/org.eclipse.qvt.declarative.importer.roseuml/.cvsignore new file mode 100644 index 000000000..655886499 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/.cvsignore @@ -0,0 +1,7 @@ +bin +bin.tasks +ant_tasks +build.xml +temp.folder +*.jar +*.args diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/.gitignore b/archive/org.eclipse.qvt.declarative.importer.roseuml/.gitignore new file mode 100644 index 000000000..ba246707e --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/.gitignore @@ -0,0 +1,2 @@ +/bin +/bin.tasks diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/.project b/archive/org.eclipse.qvt.declarative.importer.roseuml/.project new file mode 100644 index 000000000..cbe6f2ecb --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.qvt.declarative.importer.roseuml</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <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> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/.settings/org.eclipse.jdt.core.prefs b/archive/org.eclipse.qvt.declarative.importer.roseuml/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..aeec126df --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +#Wed Nov 08 10:52:00 EST 2006 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/META-INF/MANIFEST.MF b/archive/org.eclipse.qvt.declarative.importer.roseuml/META-INF/MANIFEST.MF new file mode 100644 index 000000000..275fc6054 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/META-INF/MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.qvt.declarative.importer.roseuml;singleton:=true +Bundle-Version: 0.7.0.qualifier +Bundle-ClassPath: importer.roseuml.jar +Bundle-Activator: org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporterPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.qvt.declarative.importer.roseuml, + org.eclipse.qvt.declarative.importer.roseuml.builder, + org.eclipse.qvt.declarative.importer.roseuml.taskdefs, + org.eclipse.qvt.declarative.importer.roseuml.ui +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.emf.importer, + org.eclipse.emf.codegen.ecore.ui;resolution:=optional, + org.apache.ant;resolution:=optional, + org.eclipse.emf.ant;resolution:=optional, + org.eclipse.emf.importer.rose, + org.eclipse.emf.ecore.xmi +Eclipse-LazyStart: true +Bundle-ActivationPolicy: lazy diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/about.html b/archive/org.eclipse.qvt.declarative.importer.roseuml/about.html new file mode 100644 index 000000000..2f46c1759 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/about.html @@ -0,0 +1,26 @@ +<!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>July 19, 2008</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/archive/org.eclipse.qvt.declarative.importer.roseuml/build.properties b/archive/org.eclipse.qvt.declarative.importer.roseuml/build.properties new file mode 100644 index 000000000..52135db46 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/build.properties @@ -0,0 +1,22 @@ +bin.includes = about.html,\ + plugin.properties,\ + plugin.xml,\ + importer.roseuml.jar,\ + ant_tasks/importer.roseuml.tasks.jar,\ + icons/,\ + META-INF/,\ + html/,\ + toc.xml +src.includes = examples/,\ + .classpath,\ + .cvsignore,\ + .project,\ + .settings/ +jars.compile.order = importer.roseuml.jar,\ + ant_tasks/importer.roseuml.tasks.jar +source.importer.roseuml.jar = src/ +output.importer.roseuml.jar = bin/ +source.ant_tasks/importer.roseuml.tasks.jar = tasks/ +output.ant_tasks/importer.roseuml.tasks.jar = bin.tasks +exclude.importer.roseuml.jar = **/doc-files/** +exclude.ant_tasks/importer.roseuml.tasks.jar = **/doc-files/** diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/examples/library/build/build.xml b/archive/org.eclipse.qvt.declarative.importer.roseuml/examples/library/build/build.xml new file mode 100644 index 000000000..c26aebc42 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/examples/library/build/build.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project default="codegen" basedir=".."> + <dirname property="antfile.dir" file="${ant.file}"/> + + <!-- Global properties --> + <property name="main.directory" location="${antfile.dir}/.."/> + <property name="source.directory" value="src"/> + <property name="genJDKLevel" value="5.0"/> + + <target name="codegen"> + + <!-- A macrodef makes it easier to generate code for multiple models in one script. --> + <macrodef name="rose2Java"> + <attribute name="modelName"/> + <element name="settings"/> + <sequential> + <emf.Rose2Java + model="${main.directory}/model/@{modelName}.mdl" + genModel="${main.directory}/emf/@{modelName}.genmodel" + modelProject="${main.directory}" + modelProjectFragmentPath="${source.directory}" + modelPluginID="@{modelName}.model" + copyright="This is my code." + jdkLevel="${genJDKLevel}"> + <settings/> + </emf.Rose2Java> + </sequential> + </macrodef> + + <!-- Generating the code for the library model --> + <rose2Java modelName="library"> + <settings> + <arg line="-package library library library.xmi org.examples Library"/> + </settings> + </rose2Java> + + </target> +</project>
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/examples/library/build/codeGen.bat b/archive/org.eclipse.qvt.declarative.importer.roseuml/examples/library/build/codeGen.bat new file mode 100644 index 000000000..276c8fb22 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/examples/library/build/codeGen.bat @@ -0,0 +1,14 @@ +rem You need to correct the ECLIPSE_LAUNCHER variable below. It should point to the launcher JAR in your eclipse directory.
+set ECLIPSE_LAUNCHER=C:\Eclipse\plugins\org.eclipse.equinox.launcher_1.0.0.v20070606.jar
+
+rem Model project
+set MAIN_DIR=..
+
+rem The directory indicated by the -modelProject argument should be neither a parent nor a child directory of the workspace.
+set WORKSPACE=%MAIN_DIR%\..\codegenWorkspace
+
+rem Rose2GenModel application
+java -jar %ECLIPSE_LAUNCHER% -clean -data %WORKSPACE% -application org.eclipse.gmt.umlx.importer.roseuml.RoseUML2GenModel %MAIN_DIR%\model\library.mdl %MAIN_DIR%\emf\library.genmodel -modelProject %MAIN_DIR% src -modelPluginID library.model -copyright "This is my code." -jdkLevel "5.0" -noQualify -package library library library.xmi org.examples Library
+
+rem Generator application
+java -jar %ECLIPSE_LAUNCHER% -clean -data %WORKSPACE% -application org.eclipse.emf.codegen.ecore.Generator -model %MAIN_DIR%\emf\library.genmodel
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/examples/library/model/library.mdl b/archive/org.eclipse.qvt.declarative.importer.roseuml/examples/library/model/library.mdl new file mode 100644 index 000000000..915fd4142 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/examples/library/model/library.mdl @@ -0,0 +1,1093 @@ +
+(object Petal
+ version 42
+ _written "Rose 4.5.8163.3"
+ charSet 0)
+
+(object Design "Logical View"
+ is_unit TRUE
+ is_loaded TRUE
+ defaults (object defaults
+ rightMargin 0.250000
+ leftMargin 0.250000
+ topMargin 0.250000
+ bottomMargin 0.500000
+ pageOverlap 0.250000
+ clipIconLabels TRUE
+ autoResize TRUE
+ snapToGrid TRUE
+ gridX 16
+ gridY 16
+ defaultFont (object Font
+ size 10
+ face "Arial"
+ bold FALSE
+ italics FALSE
+ underline FALSE
+ strike FALSE
+ color 0
+ default_color TRUE)
+ showMessageNum 1
+ showClassOfObject TRUE
+ notation "Unified")
+ root_usecase_package (object Class_Category "Use Case View"
+ quid "40C81DB9027F"
+ exportControl "Public"
+ global TRUE
+ logical_models (list unit_reference_list)
+ logical_presentations (list unit_reference_list
+ (object UseCaseDiagram "Main"
+ quid "40C81DB90288"
+ title "Main"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list))))
+ root_category (object Class_Category "Logical View"
+ quid "40C81DB9027E"
+ exportControl "Public"
+ global TRUE
+ subsystem "Component View"
+ quidu "40C81DB90280"
+ logical_models (list unit_reference_list
+ (object Class_Category "library"
+ attributes (list Attribute_Set)
+ quid "40C81E120060"
+ exportControl "Public"
+ logical_models (list unit_reference_list
+ (object Class "Book"
+ quid "40C81E700047"
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "title"
+ quid "40C81E770119"
+ type "String")
+ (object ClassAttribute "pages"
+ quid "40C81E7E03A3"
+ type "int"
+ initv "100")
+ (object ClassAttribute "category"
+ quid "40C81E890344"
+ type "BookCategory")))
+ (object Class "Library"
+ quid "40C81E4B028D"
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "name"
+ quid "40C81E5302FB"
+ type "String")))
+ (object Class "Writer"
+ quid "40C81E6102FA"
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "name"
+ quid "40C81E69030F"
+ type "String")))
+ (object Class "BookCategory"
+ quid "40C81E9800FF"
+ stereotype "enumeration"
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "Mystery"
+ quid "40C81EB702AF")
+ (object ClassAttribute "ScienceFiction"
+ quid "40C81EBE001A")
+ (object ClassAttribute "Biography"
+ quid "40C81EC10104")))
+ (object Association "$UNNAMED$0"
+ quid "40C81F4E0062"
+ roles (list role_list
+ (object Role "$UNNAMED$1"
+ quid "40C81F4F0321"
+ supplier "Logical View::library::Library"
+ quidu "40C81E4B028D"
+ is_aggregate TRUE)
+ (object Role "writers"
+ quid "40C81F4F0322"
+ label "writers"
+ supplier "Logical View::library::Writer"
+ quidu "40C81E6102FA"
+ client_cardinality (value cardinality "0..n")
+ Containment "By Value"
+ exportControl "Implementation"
+ is_navigable TRUE)))
+ (object Association "$UNNAMED$2"
+ quid "40C81F86019E"
+ roles (list role_list
+ (object Role "books"
+ quid "40C81F870109"
+ label "books"
+ supplier "Logical View::library::Book"
+ quidu "40C81E700047"
+ client_cardinality (value cardinality "0..n")
+ exportControl "Implementation"
+ is_navigable TRUE)
+ (object Role "author"
+ quid "40C81F87010A"
+ label "author"
+ supplier "Logical View::library::Writer"
+ quidu "40C81E6102FA"
+ client_cardinality (value cardinality "1")
+ exportControl "Implementation"
+ is_navigable TRUE)))
+ (object Association "$UNNAMED$3"
+ quid "40C82321022F"
+ roles (list role_list
+ (object Role "$UNNAMED$4"
+ quid "40C823250054"
+ supplier "Logical View::library::Library"
+ quidu "40C81E4B028D"
+ is_aggregate TRUE)
+ (object Role "books"
+ quid "40C823250055"
+ label "books"
+ supplier "Logical View::library::Book"
+ quidu "40C81E700047"
+ client_cardinality (value cardinality "0..n")
+ Containment "By Value"
+ exportControl "Implementation"
+ is_navigable TRUE))))
+ logical_presentations (list unit_reference_list
+ (object ClassDiagram "Main"
+ quid "40C81E3101FC"
+ title "Main"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list
+ (object ClassView "Class" "Logical View::library::BookCategory" @1
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1072, 224)
+ label (object ItemLabel
+ Parent_View @1
+ location (909, 140)
+ fill_color 13434879
+ nlines 1
+ max_width 326
+ justify 0
+ label "BookCategory")
+ stereotype (object ItemLabel
+ Parent_View @1
+ location (909, 90)
+ fill_color 13434879
+ anchor 10
+ nlines 1
+ max_width 326
+ justify 0
+ label "<<enumeration>>")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "40C81E9800FF"
+ width 344
+ height 292
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::library::Writer" @2
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (224, 672)
+ label (object ItemLabel
+ Parent_View @2
+ location (100, 591)
+ fill_color 13434879
+ nlines 1
+ max_width 248
+ justify 0
+ label "Writer")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "40C81E6102FA"
+ width 266
+ height 186
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::library::Library" @3
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (560, 176)
+ label (object ItemLabel
+ Parent_View @3
+ location (436, 95)
+ fill_color 13434879
+ nlines 1
+ max_width 248
+ justify 0
+ label "Library")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "40C81E4B028D"
+ width 266
+ height 186
+ autoResize TRUE)
+ (object AssociationViewNew "$UNNAMED$0" @4
+ location (392, 423)
+ stereotype TRUE
+ line_color 3342489
+ quidu "40C81F4E0062"
+ roleview_list (list RoleViews
+ (object RoleView "$UNNAMED$1" @5
+ Parent_View @4
+ location (88, -345)
+ stereotype TRUE
+ line_color 3342489
+ quidu "40C81F4F0321"
+ client @4
+ supplier @3
+ line_style 0)
+ (object RoleView "writers" @6
+ Parent_View @4
+ location (88, -345)
+ label (object SegLabel @7
+ Parent_View @6
+ location (234, 506)
+ anchor 1
+ anchor_loc 1
+ nlines 1
+ max_width 144
+ justify 0
+ label "writers"
+ pctDist 0.838068
+ height 85
+ orientation 1)
+ stereotype TRUE
+ line_color 3342489
+ quidu "40C81F4F0322"
+ client @4
+ supplier @2
+ line_style 0
+ label (object SegLabel @8
+ Parent_View @6
+ location (402, 522)
+ anchor 2
+ anchor_loc 1
+ nlines 1
+ max_width 15
+ justify 0
+ label "0..*"
+ pctDist 0.405337
+ height 64
+ orientation 0))))
+ (object ClassView "Class" "Logical View::library::Book" @9
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1008, 672)
+ label (object ItemLabel
+ Parent_View @9
+ location (782, 541)
+ fill_color 13434879
+ nlines 1
+ max_width 452
+ justify 0
+ label "Book")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "40C81E700047"
+ width 470
+ height 286
+ autoResize TRUE)
+ (object AssociationViewNew "$UNNAMED$2" @10
+ location (564, 672)
+ stereotype TRUE
+ line_color 3342489
+ quidu "40C81F86019E"
+ roleview_list (list RoleViews
+ (object RoleView "books" @11
+ Parent_View @10
+ location (260, -96)
+ label (object SegLabel @12
+ Parent_View @11
+ location (695, 630)
+ anchor 1
+ anchor_loc 1
+ nlines 1
+ max_width 132
+ justify 0
+ label "books"
+ pctDist 0.629808
+ height 43
+ orientation 0)
+ stereotype TRUE
+ line_color 3342489
+ quidu "40C81F870109"
+ client @10
+ supplier @9
+ line_style 0
+ label (object SegLabel @13
+ Parent_View @11
+ location (715, 724)
+ anchor 2
+ anchor_loc 1
+ nlines 1
+ max_width 15
+ justify 0
+ label "0..*"
+ pctDist 0.725962
+ height 52
+ orientation 1))
+ (object RoleView "author" @14
+ Parent_View @10
+ location (260, -96)
+ label (object SegLabel @15
+ Parent_View @14
+ location (443, 632)
+ anchor 1
+ anchor_loc 1
+ nlines 1
+ max_width 144
+ justify 0
+ label "author"
+ pctDist 0.586047
+ height 41
+ orientation 1)
+ stereotype TRUE
+ line_color 3342489
+ quidu "40C81F87010A"
+ client @10
+ supplier @2
+ line_style 0
+ label (object SegLabel @16
+ Parent_View @14
+ location (423, 725)
+ anchor 2
+ anchor_loc 1
+ nlines 1
+ max_width 15
+ justify 0
+ label "1"
+ pctDist 0.679070
+ height 53
+ orientation 0))))
+ (object AssociationViewNew "$UNNAMED$3" @17
+ location (761, 398)
+ stereotype TRUE
+ line_color 3342489
+ quidu "40C82321022F"
+ roleview_list (list RoleViews
+ (object RoleView "$UNNAMED$4" @18
+ Parent_View @17
+ location (-327, -386)
+ stereotype TRUE
+ line_color 3342489
+ quidu "40C823250054"
+ client @17
+ supplier @3
+ line_style 0)
+ (object RoleView "books" @19
+ Parent_View @17
+ location (-327, -386)
+ label (object SegLabel @20
+ Parent_View @19
+ location (747, 469)
+ anchor 1
+ anchor_loc 1
+ nlines 1
+ max_width 132
+ justify 0
+ label "books"
+ pctDist 0.244369
+ height 59
+ orientation 1)
+ stereotype TRUE
+ line_color 3342489
+ quidu "40C823250055"
+ client @17
+ supplier @9
+ line_style 0
+ label (object SegLabel @21
+ Parent_View @19
+ location (904, 463)
+ anchor 2
+ anchor_loc 1
+ nlines 1
+ max_width 15
+ justify 0
+ label "0..*"
+ pctDist 0.823204
+ height 63
+ orientation 0)))))))))
+ logical_presentations (list unit_reference_list
+ (object ClassDiagram "Main"
+ quid "40C81DB90284"
+ title "Main"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list
+ (object CategoryView "Logical View::library" @22
+ location (272, 240)
+ label (object ItemLabel
+ Parent_View @22
+ location (128, 156)
+ fill_color 13434879
+ nlines 2
+ max_width 288
+ justify 0
+ label "library")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "40C81E120060"
+ width 300
+ height 180)))))
+ root_subsystem (object SubSystem "Component View"
+ quid "40C81DB90280"
+ physical_models (list unit_reference_list)
+ physical_presentations (list unit_reference_list
+ (object Module_Diagram "Main"
+ quid "40C81DB90287"
+ title "Main"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list))))
+ process_structure (object Processes
+ quid "40C81DB90281"
+ ProcsNDevs (list
+ (object Process_Diagram "Deployment View"
+ quid "40C81DB90283"
+ title "Deployment View"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list))))
+ properties (object Properties
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "DDL"
+ name "propertyId"
+ value "809135966")
+ (object Attribute
+ tool "DDL"
+ name "default__Project"
+ value (list Attribute_Set
+ (object Attribute
+ tool "DDL"
+ name "Directory"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "DDL"
+ name "DataBase"
+ value ("DataBaseSet" 800))
+ (object Attribute
+ tool "DDL"
+ name "DataBaseSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "DDL"
+ name "ANSI"
+ value 800)
+ (object Attribute
+ tool "DDL"
+ name "Oracle"
+ value 801)
+ (object Attribute
+ tool "DDL"
+ name "SQLServer"
+ value 802)
+ (object Attribute
+ tool "DDL"
+ name "Sybase"
+ value 803)
+ (object Attribute
+ tool "DDL"
+ name "Watcom"
+ value 804)))
+ (object Attribute
+ tool "DDL"
+ name "PrimaryKeyColumnName"
+ value "Id")
+ (object Attribute
+ tool "DDL"
+ name "PrimaryKeyColumnType"
+ value "NUMBER(5)")
+ (object Attribute
+ tool "DDL"
+ name "ViewName"
+ value "V_")
+ (object Attribute
+ tool "DDL"
+ name "TableName"
+ value "T_")
+ (object Attribute
+ tool "DDL"
+ name "InheritSuffix"
+ value "_V")
+ (object Attribute
+ tool "DDL"
+ name "DropClause"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "BaseViews"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "DDLScriptFilename"
+ value "DDL1.SQL")))
+ (object Attribute
+ tool "DDL"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "DDL"
+ name "ColumnType"
+ value "VARCHAR")
+ (object Attribute
+ tool "DDL"
+ name "Length"
+ value "")
+ (object Attribute
+ tool "DDL"
+ name "NullsOK"
+ value TRUE)
+ (object Attribute
+ tool "DDL"
+ name "PrimaryKey"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "Unique"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "CompositeUnique"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "CheckConstraint"
+ value "")))
+ (object Attribute
+ tool "DDL"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "propertyId"
+ value "809135966")
+ (object Attribute
+ tool "IDL"
+ name "default__Project"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "CreateMissingDirectories"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "StopOnError"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "Directory"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "IDL"
+ name "GeneratePreserveRegions"
+ value TRUE)))
+ (object Attribute
+ tool "IDL"
+ name "default__Class"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "ImplementationType"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "ConstValue"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "GenerateDefaultSpecifier"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "DefaultSpecifier"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "IDLElement"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "IDLSpecificationType"
+ value ("IDLSpecSet" 22))
+ (object Attribute
+ tool "IDL"
+ name "IDLSpecSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Interface"
+ value 22)
+ (object Attribute
+ tool "IDL"
+ name "Typedef"
+ value 54)
+ (object Attribute
+ tool "IDL"
+ name "Enumeration"
+ value 8)
+ (object Attribute
+ tool "IDL"
+ name "Const"
+ value 71)
+ (object Attribute
+ tool "IDL"
+ name "Exception"
+ value 61)
+ (object Attribute
+ tool "IDL"
+ name "Struct"
+ value 51)
+ (object Attribute
+ tool "IDL"
+ name "Union"
+ value 81)))))
+ (object Attribute
+ tool "IDL"
+ name "default__Module-Spec"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Generate"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "CmIdentification"
+ value (value Text " %X% %Q% %Z% %W%"))
+ (object Attribute
+ tool "IDL"
+ name "CopyrightNotice"
+ value (value Text ""))
+ (object Attribute
+ tool "IDL"
+ name "FileName"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "IDL"
+ name "GenerateIDLModule"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "InclusionProtectionSymbol"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "IDL"
+ name "AdditionalIncludes"
+ value (value Text ""))
+ (object Attribute
+ tool "IDL"
+ name "IncludeBySimpleName"
+ value FALSE)))
+ (object Attribute
+ tool "IDL"
+ name "default__Module-Body"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "CmIdentification"
+ value (value Text " %X% %Q% %Z% %W%"))
+ (object Attribute
+ tool "IDL"
+ name "CopyrightNotice"
+ value (value Text ""))
+ (object Attribute
+ tool "IDL"
+ name "FileName"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "IDL"
+ name "AdditionalIncludes"
+ value (value Text ""))
+ (object Attribute
+ tool "IDL"
+ name "IncludeBySimpleName"
+ value FALSE)))
+ (object Attribute
+ tool "IDL"
+ name "default__Operation"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "OperationIsOneWay"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "Context"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "Raises"
+ value "")))
+ (object Attribute
+ tool "IDL"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "CaseSpecifier"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "DataMemberName"
+ value "$relationship")
+ (object Attribute
+ tool "IDL"
+ name "IsReadOnly"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "IsConst"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "ConstValue"
+ value "")))
+ (object Attribute
+ tool "IDL"
+ name "default__Has"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "NameIfUnlabeled"
+ value "the_$supplier")
+ (object Attribute
+ tool "IDL"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "DataMemberName"
+ value "$relationship")
+ (object Attribute
+ tool "IDL"
+ name "GenerateForwardReference"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "IsReadOnly"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "BoundedHasRelType"
+ value ("HasRelTypeSet" 47))
+ (object Attribute
+ tool "IDL"
+ name "HasRelTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Array"
+ value 24)
+ (object Attribute
+ tool "IDL"
+ name "Sequence"
+ value 47)))))
+ (object Attribute
+ tool "IDL"
+ name "default__Role"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "NameIfUnlabeled"
+ value "the_$supplier")
+ (object Attribute
+ tool "IDL"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "DataMemberName"
+ value "$relationship")
+ (object Attribute
+ tool "IDL"
+ name "GenerateForwardReference"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "IsReadOnly"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "BoundedRoleType"
+ value ("AssocTypeSet" 47))
+ (object Attribute
+ tool "IDL"
+ name "AssocTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Array"
+ value 24)
+ (object Attribute
+ tool "IDL"
+ name "Sequence"
+ value 47)))))
+ (object Attribute
+ tool "IDL"
+ name "default__Uses"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "GenerateForwardReference"
+ value FALSE)))
+ (object Attribute
+ tool "IDL"
+ name "default__Subsystem"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Directory"
+ value "AUTO GENERATE")))
+ (object Attribute
+ tool "IDL"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "SCC"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "propertyId"
+ value "809135969")
+ (object Attribute
+ tool "Ecore"
+ name "default__Category"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "packageName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "nsPrefix"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "nsURI"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "basePackage"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "prefix"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value "")))
+ (object Attribute
+ tool "Ecore"
+ name "default__Class"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "classifierName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "constraints"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlContentKind"
+ value ("ContentKind" 0))
+ (object Attribute
+ tool "Ecore"
+ name "ContentKind"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "Unspecified"
+ value 0)
+ (object Attribute
+ tool "Ecore"
+ name "Empty"
+ value 1)
+ (object Attribute
+ tool "Ecore"
+ name "Simple"
+ value 2)
+ (object Attribute
+ tool "Ecore"
+ name "Mixed"
+ value 3)
+ (object Attribute
+ tool "Ecore"
+ name "ElementOnly"
+ value 4)))
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value "")))
+ (object Attribute
+ tool "Ecore"
+ name "default__Operation"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "operationName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value "")))
+ (object Attribute
+ tool "Ecore"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "attributeName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isVolatile"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isChangeable"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isUnsettable"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isUnique"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isID"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "xmlName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlNamespace"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlFeatureKind"
+ value ("FeatureKind" 0))
+ (object Attribute
+ tool "Ecore"
+ name "FeatureKind"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "Unspecified"
+ value 0)
+ (object Attribute
+ tool "Ecore"
+ name "Simple"
+ value 1)
+ (object Attribute
+ tool "Ecore"
+ name "Attribute"
+ value 2)
+ (object Attribute
+ tool "Ecore"
+ name "Element"
+ value 4)))
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value "")))
+ (object Attribute
+ tool "Ecore"
+ name "default__Role"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "referenceName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isVolatile"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isChangeable"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isUnsettable"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isResolveProxies"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "xmlName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlNamespace"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlFeatureKind"
+ value ("FeatureKind" 0))
+ (object Attribute
+ tool "Ecore"
+ name "FeatureKind"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "Unspecified"
+ value 0)
+ (object Attribute
+ tool "Ecore"
+ name "Simple"
+ value 1)
+ (object Attribute
+ tool "Ecore"
+ name "Attribute"
+ value 2)
+ (object Attribute
+ tool "Ecore"
+ name "Element"
+ value 4)))
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value ""))))
+ quid "40C81DB90282"))
diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/html/.cvsignore b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/.cvsignore new file mode 100644 index 000000000..74b59e474 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/.cvsignore @@ -0,0 +1 @@ +~* diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/html/ConversionAction.png b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/ConversionAction.png Binary files differnew file mode 100644 index 000000000..4c3a8f239 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/ConversionAction.png diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/html/SelectAModelImporter.png b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/SelectAModelImporter.png Binary files differnew file mode 100644 index 000000000..d5bf7492d --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/SelectAModelImporter.png diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/html/bugs.html b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/bugs.html new file mode 100644 index 000000000..841c6e381 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/bugs.html @@ -0,0 +1,12 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <title>QVT Rose UML Importer Bugs</title> +</head> + +<body> +<h1>QVT Rose UML Importer Bugs</h1> +None known. +</body> +</html>
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/html/changes.html b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/changes.html new file mode 100644 index 000000000..f2f634631 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/changes.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <title>QVT Rose UML Importer Changes</title> +</head> +<body> +<h1>QVT Rose UML Importer Changes</h1> +Formerly the UMLX Rose UML Importer. +<h3>QVT Rose UML 0.7.0</h3> +Promoted from GMT/UMLX to M2M. +<h3>UMLX Rose UML 1.2.0 (8-Jun-2008)</h3> +Generation of traditionalemof (no PrimitiveTypes package) added. +<br> +Unnavigable opposite role names modelled using EMOF comments/Ecore annotations +eliminating the need for max/min models. +<br> +Unity upperbound features forced to be ordered. +<br> +EMOF namespace changed to http://schema.omg.org/spec/MOF/2.0/emof.xml. +<h3>UMLX Rose UML 1.1.0 (24-Sep-2007)</h3> +Documentation added. +<br> +Conversion action added to support QVT model transformation and +uni-directional association variants. +<h3>UMLX Rose UML 1.0.0 (6-Sep-2007)</h3> +Original importer variant with support for ordered constraints. +</body> +</html> diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/html/epl-v10.html b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/epl-v10.html new file mode 100644 index 000000000..720642144 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/epl-v10.html @@ -0,0 +1,319 @@ +<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<meta name="ProgId" content="Word.Document"> +<meta name="Generator" content="Microsoft Word 9"> +<meta name="Originator" content="Microsoft Word 9"> +<link rel="File-List" href="http://www.eclipse.org/legal/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Revision>2</o:Revision> + <o:TotalTime>3</o:TotalTime> + <o:Created>2004-03-05T23:03:00Z</o:Created> + <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved> + <o:Pages>4</o:Pages> + <o:Words>1626</o:Words> + <o:Characters>9270</o:Characters> + <o:Lines>77</o:Lines> + <o:Paragraphs>18</o:Paragraphs> + <o:CharactersWithSpaces>11384</o:CharactersWithSpaces> + <o:Version>9.4402</o:Version> + </o:DocumentProperties> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackRevisions/> + </w:WordDocument> +</xml><![endif]--> + + +<style> +<!-- + /* Font Definitions */ +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:553679495 -2147483648 8 0 66047 0;} + /* Style Definitions */ +p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p + {margin-right:0in; + mso-margin-top-alt:auto; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p.BalloonText, li.BalloonText, div.BalloonText + {mso-style-name:"Balloon Text"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:Tahoma; + mso-fareast-font-family:"Times New Roman";} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style></head> + +<body style="" lang="EN-US"> + +<div class="Section1"> + +<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b> +</p> + +<p><span style="font-size: 10pt;">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.</span> </p> + +<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p> + +<p><span style="font-size: 10pt;">"Contribution" means:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and<br clear="left"> +b) in the case of each subsequent Contributor:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +changes to the Program, and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +additions to the Program;</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">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. </span></p> + +<p><span style="font-size: 10pt;">"Contributor" means any person or +entity that distributes the Program.</span> </p> + +<p><span style="font-size: 10pt;">"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. </span></p> + +<p><span style="font-size: 10pt;">"Program" means the Contributions +distributed in accordance with this Agreement.</span> </p> + +<p><span style="font-size: 10pt;">"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.</span> </p> + +<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>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.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>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. </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">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.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">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. </span></p> + +<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p> + +<p><span style="font-size: 10pt;">A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that:</span> +</p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it complies with the terms and conditions of this Agreement; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +its license agreement:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">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; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">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.<span style="color: blue;"> </span></span></p> + +<p><span style="font-size: 10pt;">When the Program is made available in source +code form:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it must be made available under this Agreement; and </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a +copy of this Agreement must be included with each copy of the Program. </span></p> + +<p><span style="font-size: 10pt;">Contributors may not remove or alter any +copyright notices contained within the Program. </span></p> + +<p><span style="font-size: 10pt;">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. </span></p> + +<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p> + +<p><span style="font-size: 10pt;">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.</span> </p> + +<p><span style="font-size: 10pt;">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.</span> </p> + +<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p> + +<p><span style="font-size: 10pt;">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. </span></p> + +<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p> + +<p><span style="font-size: 10pt;">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.</span> </p> + +<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p> + +<p><span style="font-size: 10pt;">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.</span> </p> + +<p><span style="font-size: 10pt;">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. </span></p> + +<p><span style="font-size: 10pt;">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. </span></p> + +<p><span style="font-size: 10pt;">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.</span> </p> + +<p><span style="font-size: 10pt;">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.</span> </p> + +<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> + +</div> + +</body></html>
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/html/index.html b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/index.html new file mode 100644 index 000000000..17555f642 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/index.html @@ -0,0 +1,143 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> + +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <title>QVT Rose UML Importer</title> +</head> + +<body> +<h1>QVT Rose UML Importer</h1> +<p> +The QVT Rose UML Importer supports conversion of a UML model defined by class diagrams +in an IBM Rational Rose MDL file to Ecore or EMOF files suitable for use with +EMF and other modeling tools. +</p> +<p> +Subtle but critical differences between the Rose UML Importer and the Rose Importer that +forms part of EMF are discussed below. +</p> +<h3>Operation</h3> +<p> +The QVT Rose UML Importer supports two interactive modes of operation. +</p> +<p> +The traditional Import model behavior is available, when loading a genmodel as +part of EMF model or project creation, or when reloading a genmodel. +</p> +<p> +An alternative conversion action is available for MDL files. +</p> +<p> +The traditional import is also available as a standalone program or Ant task for +those skilled in resolving Eclipse class paths (see <a href="readme.html">readme.html</a>). +</p> + +<h2> Differences between QVT Rose UML Importer and EMF Rose Importer</h2> + +<h3>EReference.ordered</h3> +<p> +The standard EMF Rose Importer does not define EReference.ordered so it takes the Ecore default +which is ordered. +</p> +<p> +The QVT RoseUML Importer sets EReference.ordered according to the presence of the ordered +keyword as one of the constraints on an Association. For unit upper-bound features ordered +is enforced. +</p> +<p> +[This is arguably a bug fix, however the Rose Importer behavior is well-established. +Fixing this bug would have widespread albeit probably trivial impact on existing clients +and so failure to observe the ordered constraint is a feature not a bug.] +</p> + +<h3>Navigability</h3> +<p> +The standard EMF Rose Importer generates a pair of mutually opposite EReferences for bidirectional +associations and a single EReference for unidirectional associations. This is appropriate +for code generation style use of the subsequent model, but, because it discards the role +name and multiplicity of the opposite end, it is inadequate for meta-modelling purposes. +</p> +<p> +The QVT Rose UML Importer, when invoked as a conversion action, provides the missing unnavigable +role name as an EMOF comment or as an Ecore EAnnotation in accoradnce with the parctice +defined by <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=229998">Bugzilla 229998</a>. +</p> +<h3>Omitted EReference.name</h3> +<p> +The standard EMF Rose Importer generates names for missing roles from the associated type. +</p> +<p> +The QVT Rose UML Importer does the same but converts the first letter to lowercase +as required by OCL 06-05-01 7.5.3 Missing AssocoiationEnd names. +</p> + +<h2>Operation</h2> + +<h3>genmodel load/reload</h2> +<p> +The traditional Import model behavior is available when creating a genmodel as +part of a new +EMF model (e.g. <tt>New->Other...->EMF Modeling Framework->EMF Model</tt>) +or project +(e.g. <tt>New->Project...->EMF Modeling Framework->EMF Model</tt>), +and when reloading the genmodel (<tt>Reload...</tt> from the *.genmodel context-sensitive menu). +</p> +<p align=center><img src="SelectAModelImporter.png" border="0"/> +<p> +The Rose UML behavior differs by observing ordered constriants. +</p> + +<h3>MDL conversion</h2> + +The alternative conversion action is available from the *.mdl context-sensitive menu. +<p align=center><img src="ConversionAction.png" border="0"/> +</p> +<p> +The action initiates loading of the <tt><i>model</i>.mdl</tt> and generation of: +<li>Ecore files (with <tt>*.ecore</tt> extension in an <tt>ecore</tt> folder)</li> +<li>EMOF files (with <tt>*.xml</tt> extension in an <tt>emof</tt> folder)</li> +</p> +<p>Three distinct packaging options +<li>one package per file (named <tt><i>package</i>.*</tt>) +<li>all packages in one file (named <tt><i>model</i>.*</tt>) +<li>all package contents in a file containing a flattened package (named <tt>Flat<i>model</i>.*</tt>) +</p> +<p>Three distinct unidirectional association representation options +<li>semi-opposite with two EReferences but only one non-null eOpposite (named <tt>*.*</tt>) +<li>navigability increased by using two EReferences with mutual eOpposites (named <tt>*.max.*</tt>) +<li>elimination of non-navigable EReferences (named <tt>*.min.*</tt>) +</p> +<p> +This facility was developed to support the OMG QVT 1.0 specification, for which +EMOF is needed to support OMG standards and Ecore as a convenience for many users. +</p> +<p> +The one file per package and all packages in one file formats provide alternatives +for slightly defective tools that may have problems with multi-package meta-models. +The flattened representation gives a further option for very defective tools. +</p> +<p> +QVT requires that all associations are navigable in both directions for the purposes +of transformation pattern matching. This conflicts with the conventional EMF usage +in which non-navigable ends of associations have no corresponding EReference +to define their roles and multiplicities. The three navigability representations +provide the traditional minimal representation for code generation, and an exact +representation for transformation pattern matching. Since the exact representation +uses asymmetric opposites, it may cause trouble for some tools. A further option +in which all associations are bidirectional is provided for these tools. +</p> +<p> +The QVT models with enhanced navigability add additional EReferences to EMOF +and EssentialOCL classes, and comply with the EMOF specification of a PrimitiveTypes +package. The <tt>http://schema.omg.org/spec/mof/2.0/emof.xml</tt> is used for a combined +EMOF and PrimitiveTypes package. Therefore if the source UML model contains an EMOF +and a PrimitiveTypes package, a further set of Ecore files are generated in the +<tt>traditionalEcore</tt> folder. These files omit +non-navigable EReferences and the PrimitiveTypes package whose contents +are moved to the EMOF package. Additionally the namespace of the EMOF +package is changed to <tt>http://schema.omg.org/spec/MOF/2.0/emof.xml</tt>. +</p> + +</body> +</html>
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/html/installation.html b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/installation.html new file mode 100644 index 000000000..8a825db02 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/installation.html @@ -0,0 +1,45 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <title>QVT Rose UML Importer Installation</title> +</head> +<body> +<h1>QVT Rose UML Importer Installation Installation</h1> +<p>The QVT Rose UML Importer Installation requires Eclipse 3.4 (Ganymede) for +usage with and generation of Ecore. +<p>Accurate generation of EMOF requires EMF 2.4.0. +<ul> +<li>Java 1.5.0</LI> +<li><a href="http://download.eclipse.org/eclipse/downloads">Eclipse 3.4</a></li>, +<li><a href="http://www.eclipse.org/modeling/emf/downloads/?project=emf">EMF 2.4.0</a></li>, +</ul> +<h2>Installation and Building</h2> +Check out each of +<ul> +<li><tt>org.eclipse.emf/org.eclipse.emf/plugins/org.eclipse.emf.ant</tt> +<li><tt>org.eclipse.emf/org.eclipse.emf/plugins/org.eclipse.emf.importer.rose</tt> +<li><tt>org.eclipse.m2m/org.eclipse.qvt.declarative/tools/org.eclipse.qvt.declarative.importer.roseuml</tt> +</ul> +from <tt>dev.eclipse.org</tt> <tt>/cvsroot/modeling</tt> into the default workspace location. +<br> +(N.B. use of a non-default may fail to build properly - see Bugzilla 233944). +<p> +Select <tt>org.eclipse.emf.ant/plugin.xml</tt> and invoke <tt>PDE Tools->Create Ant Build File</tt>. +<br> +Select <tt>org.eclipse.emf.ant/build.xml</tt> and invoke <tt>Run As->Ant Build</tt>. +<p> +Select <tt>org.eclipse.emf.importer.rose/plugin.xml</tt> and invoke <tt>PDE Tools->Create Ant Build File</tt>. +<br> +Select <tt>org.eclipse.emf.importer.rose/build.xml</tt> and invoke <tt>Run As->Ant Build</tt>. +<p> +Select <tt>org.eclipse.qvt.declarative.importer.roseuml/plugin.xml</tt> and invoke <tt>PDE Tools->Create Ant Build File</tt>. +<br> +Select <tt>org.eclipse.qvt.declarative.importer.roseuml/build.xml</tt> and invoke <tt>Run As->Ant Build</tt>. +<p> +Now invoke a nested Eclipse Configuration that includes the above plug-ins. +<br> +Select a Rose <tt>*.mdl</tt> file and invoke <tt>Rose UML Tools->MDL to Ecore and EMOF</tt>. + +</body> +</html> diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/html/readme.html b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/readme.html new file mode 100644 index 000000000..eebf22508 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/html/readme.html @@ -0,0 +1,102 @@ +<!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>org.eclipse.emf.importer.roseuml Read Me</title> +</head> +<body lang="EN-US"> + +<em>The following description is copied from org.eclipse.emf.importer.rose, which +this plug-in almost duplicates. See <a href="installation.html">Installation</a> +for specific instructions on getting this plug-in and its dependents to install and build. +</em> +<h3>Introduction</h3> +<p>Usage of the QVT Rose UML importer is almost identical to the standard EMF Rose usage. The differences is that the +RoseUML conversions apply a UML interpreation to Association Role Constraints such as {ordered}. +The normal Rose conversion ignores these constraints and consequently treats all associations as ordered.</p> +<p>This document describes how you can use scripts to generate code from a Rose UML model. The +script can be either a regular shell script that invokes <a href="#headlessApplication">Eclipse headless +applications</a> or an Ant script that invokes the <a href="#antTasks">task</a> provided by this plugin.</p> + +<h3><a name="overallComments">Overall Comments</a></h3> +<ul> +<li>If you didn't extract this plugin from CVS, the "examples" directory mentioned +in this document is available in the EMF source plugin +(org.eclipse.emf.source_<i><version></i>/src/org.eclipse.emf.importer.rose_<i><version></i>). +<br/><br/></li> +<li>Before running your build scripts or the examples provided here, make sure you have the 2 +jar files required by this plugin ("importer.roseuml.jar" and +"importer.roseuml.tasks.jar") and also the 2 jar files required by the <tt>org.eclipse.emf.ant</tt> +plugin ("emf.ant.jar" and "emf.ant.tasks.jar"). If necessary, Eclipse +can generate them for you. All you need to do is to run the Ant script created by PDE when you right click on the manifest file +and select "PDE Tools>Create Ant Build File". +<br/><br/></li> +<li>Although the applications and task mentioned here must be executed by Eclipse (usually in headless mode), they can +work on files located in any directory. In other words, your models, templates and other files don't need +to be in the "plugins" directory nor in the workspace. +<br/><br/></li> +<li>In order to preserve the original state of this plugin's "examples" directory, you +should copy it to a different location and run the Ant scripts from there. +<br/><br/></li> +<li>Starting a new JVM process and invoking Eclipse are expensive operations. Your build will +perform better if you are able to group the steps that require Eclipse in a few scripts +(one script would be ideal). This is probably a reason to use Ant instead of invoking the +applications - you can generate code for multiple models using one single Ant script. +<br/><br/></li> +<li>The "examples/library" directory contains a Rose model, and shell and Ant scripts +to generate its code. +</li> +</ul> + +<h3><a name="headlessApplication">Rose and Generator Applications</a></h3> +<p>The application provided by this plugin generates the ecore and genmodel files from models defined +using Rose.</p> +<table border="1" cellpadding="2" cellspacing="0" +summary="Lists the details about the Rose application."> + <tr><td colspan="2">Rose application details</td></tr> + <tr><td>ID</td><td><tt>org.eclipse.emf.importer.roseuml.RoseUML2GenModel</tt></td></tr> + <tr><td>Class</td><td><tt>org.eclipse.emf.importer.roseuml.RoseUMLImporterApplication</tt></td></tr> +</table> +<p>To generate the actual Java code you will need to use a second application, provided by +the "org.eclipse.emf.codegen.ecore" plugin.</p> +<table border="1" cellpadding="2" cellspacing="0" +summary="Lists the details about the Generator application."> + <tr><td colspan="2">Generator application details</td></tr> + <tr><td>ID</td><td><tt>org.eclipse.emf.codegen.ecore.Generator</tt></td></tr> + <tr><td>Class</td><td><tt>org.eclipse.emf.codegen.ecore.Generator</tt></td></tr> +</table> +<p>In order to run these or any other Eclipse application, you need to execute the following +command (without the line breaks):</p> +<p> +java +<br/> -classpath <i><eclipseDir></i>/startup.jar org.eclipse.core.launcher.Main +<br/> -data <i><full path to a workspace - ideally an empty directory></i> +<br/> -application <i><application ID></i> +<br/> <i><application arguments></i> +</p> +<p>The directory "examples/library/build" has shell scripts that generate the code for +the model provided. If you have any questions after reading and experimenting with it, look at the +applications's javadoc for more details. Also, check the application's class +"getUsage()" method for the list of possible arguments.</p> + +<h3><a name="antTasks">Rose Ant Task</a></h3> +<p>The Rose task details are:</p> +<table border="1" cellpadding="2" cellspacing="0" +summary="Lists the details about the Rose task."> + <tr><td>Name</td><td><tt>emf.Rose2Java</tt></td></tr> + <tr><td>Class</td><td><tt>org.eclipse.emf.importer.roseuml.taskdefs.RoseUMLGeneratorTask</tt></td></tr> +</table> +<p>This is the usual command line to run an Ant script using a headless Eclipse instance (remove the line breaks):</p> +<p> +java +<br/> -classpath <i><eclipseDir></i>/startup.jar org.eclipse.core.launcher.Main +<br/> -data <i><full path to a workspace - ideally an empty directory></i> +<br/> -application org.eclipse.ant.core.antRunner +<br/> -buildfile <i><full path to your script></i> +</p> +<p>The directory "examples/library/build" has an Ant script that generate the code for +the model provided. The task's javadoc has lots of information you may find useful.</p> + +</body> +</html>
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/icons/full/obj16/RoseModelFile.gif b/archive/org.eclipse.qvt.declarative.importer.roseuml/icons/full/obj16/RoseModelFile.gif Binary files differnew file mode 100644 index 000000000..2aae55249 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/icons/full/obj16/RoseModelFile.gif diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/plugin.properties b/archive/org.eclipse.qvt.declarative.importer.roseuml/plugin.properties new file mode 100644 index 000000000..9196bb12d --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/plugin.properties @@ -0,0 +1,40 @@ +# /** +# * <copyright> +# * +# * Copyright (c) 2002-2005 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 - Initial API and implementation +# * +# * </copyright> +# * +# * $Id: plugin.properties,v 1.3 2009/06/06 18:14:26 ewillink Exp $ +# */ + +# NLS_MESSAGEFORMAT_VAR + +# ============================================================================== +# Do not change the properties between this line and the last line containing: +# %%% END OF TRANSLATED PROPERTIES %%% +# Instead, either redefine an existing property, or create a new property, +# append it to the end of the file, and change the code to use the new name. +# ============================================================================== + +# ============================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# The above properties have been shipped for translation. +# ============================================================================== + +pluginName = QVT Declarative Rose UML Importer +providerName = Eclipse Modeling Project + +_UI_RoseUMLModelImporter_label = Rose UML class model +_UI_RoseUMLModelImporter_description = Create the Ecore model based on a Rose UML class diagram + +_UI_RoseUMLModelImport_title = Rose UML Model Import +_UI_RoseUMLModelImportFile_description = Specify a '.mdl' file, load and specify any path map symbols, and load the model +_UI_RoseUMLModelImportNewProject_description = Specify a '.mdl' file, load and specify any path map symbols, load the model, and choose a file name for the generator model diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/plugin.xml b/archive/org.eclipse.qvt.declarative.importer.roseuml/plugin.xml new file mode 100644 index 000000000..7e6febd35 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/plugin.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> +<plugin> + <extension id="RoseUML2GenModel" point="org.eclipse.core.runtime.applications"> + <application> + <run class="org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporterApplication" /> + </application> + </extension> + + <extension point="org.eclipse.emf.importer.modelImporterDescriptors"> + <modelImporterDescriptor id="org.eclipse.qvt.declarative.importer.roseuml" name="%_UI_RoseUMLModelImporter_label" icon="icons/full/obj16/RoseModelFile.gif" extensions="mdl" description="%_UI_RoseUMLModelImporter_description" wizard="org.eclipse.qvt.declarative.importer.roseuml.ui.RoseUMLImporterWizard" /> + </extension> + + <extension point="org.eclipse.ant.core.extraClasspathEntries"> + <extraClasspathEntry library="ant_tasks/importer.roseuml.tasks.jar" /> + </extension> + + <extension point="org.eclipse.ant.core.antTasks"> + <antTask library="ant_tasks/importer.roseuml.tasks.jar" name="emf.RoseUML2Java" headless="true" class="org.eclipse.qvt.declarative.importer.roseuml.taskdefs.RoseUMLGeneratorTask" /> + </extension> + + <extension point="org.eclipse.ui.popupMenus"> + <objectContribution id="org.eclipse.qvt.declarative.importer.roseuml.contribution1" + objectClass="org.eclipse.core.resources.IFile" + nameFilter="*.mdl" > + <menu id="org.eclipse.qvt.declarative.importer.roseuml.menu1" + label="Rose UML Tools" + path="additions"> + <separator name="group1"/> + </menu> + <action id="org.eclipse.qvt.declarative.importer.roseuml.newAction" + label="MDL to Ecore and EMOF" + class="org.eclipse.qvt.declarative.importer.roseuml.actions.ConversionAction" + menubarPath="org.eclipse.qvt.declarative.importer.roseuml.menu1/group1" + enablesFor="1"/> + </objectContribution> + </extension> + + <extension point="org.eclipse.help.toc"> + <toc file="toc.xml" primary="true"/> + </extension> + +</plugin>
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/RoseUMLImporter.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/RoseUMLImporter.java new file mode 100644 index 000000000..f300dcbbd --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/RoseUMLImporter.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright (c) 2007,2008 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml; + +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.Monitor; +import org.eclipse.emf.importer.rose.RoseImporter; +import org.eclipse.qvt.declarative.importer.roseuml.builder.RoseUMLUtil; + + +/** + */ +public class RoseUMLImporter extends RoseImporter +{ + protected Monitor monitor = null; // Non-null copy of computeEPackages argument + + @Override public Diagnostic computeEPackages(Monitor monitor) throws Exception { + this.monitor = monitor; + try { + return super.computeEPackages(monitor); + } finally { + monitor = null; + } + } + + @Override protected RoseUMLUtil createRoseUtil() + { + RoseUMLUtil roseUtil = new RoseUMLUtil(this, createResourceSet().getURIConverter()); + roseUtil.getRoseEcoreBuilder().noQualify = noQualify; + roseUtil.getRoseEcoreBuilder().unsettablePrimitive = unsettablePrimitive; + return roseUtil; + } + + @Override public String getID() + { + return "org.eclipse.qvt.declarative.importer.roseuml"; + } + + public Monitor getMonitor() { return monitor; } +}
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/RoseUMLImporterApplication.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/RoseUMLImporterApplication.java new file mode 100644 index 000000000..03f7d721a --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/RoseUMLImporterApplication.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2007,2008 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml; + +import org.eclipse.emf.importer.ModelImporter; +import org.eclipse.emf.importer.rose.RoseImporterApplication; + +public class RoseUMLImporterApplication extends RoseImporterApplication +{ + @Override + public RoseUMLImporter getRoseImporter() + { + return (RoseUMLImporter)getModelImporter(); + } + + @Override + protected ModelImporter createModelImporter() + { + return new RoseUMLImporter(); + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/RoseUMLImporterPlugin.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/RoseUMLImporterPlugin.java new file mode 100644 index 000000000..5874780bd --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/RoseUMLImporterPlugin.java @@ -0,0 +1,108 @@ +/******************************************************************************* + * Copyright (c) 2007 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml; + +import org.eclipse.core.runtime.ILog; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.emf.common.EMFPlugin; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.importer.ImporterPlugin; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.swt.widgets.Display; + +/** + * The <b>Plugin</b> for the EMF.CodeGen.Ecore.Rose library. + * @since 2.1.0 + */ +public final class RoseUMLImporterPlugin extends EMFPlugin +{ + /** + * The plug-in ID + */ + public static final String PLUGIN_ID = RoseUMLImporterPlugin.class.getPackage().getName(); + + /** + * The singleton instance of the plugin. + */ + public static final RoseUMLImporterPlugin INSTANCE = new RoseUMLImporterPlugin(); + + /** + * The one instance of this class. + */ + private static Implementation plugin; + + /** + * Creates the singleton instance. + */ + private RoseUMLImporterPlugin() + { + super(new ResourceLocator [] { ImporterPlugin.INSTANCE }); + } + + public static Status createErrorStatus(String string, Throwable e) { + return new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, string, e); + } + + /* + * Javadoc copied from base class. + */ + @Override + public ResourceLocator getPluginResourceLocator() + { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * @return the singleton instance. + */ + public static Implementation getPlugin() + { + return plugin; + } + + public static void logError(String string, Throwable e) { + ILog log = getPlugin().getLog(); + log.log(createErrorStatus(string, e)); + } + + public static void showError(final String string, final Exception e) { +// logError(string, e); + Display display = Display.getDefault(); + if (Thread.currentThread() != display.getThread()) { + display.syncExec(new Runnable() { + public void run() { + showError(string, e); + }}); + } + else + ErrorDialog.openError(null, "RoseUML Error", null, createErrorStatus(string, e)); + } + + /** + * The actual implementation of the Eclipse <b>Plugin</b>. + */ + public static class Implementation extends EclipsePlugin + { + /** + * Creates an instance. + */ + public Implementation() + { + super(); + + // Remember the static instance. + // + plugin = this; + } + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/ConversionAction.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/ConversionAction.java new file mode 100644 index 000000000..7867acbc6 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/ConversionAction.java @@ -0,0 +1,133 @@ +/******************************************************************************* + * Copyright (c) 2007,2008 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.actions; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.concurrent.CancellationException; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; +import org.eclipse.emf.common.util.BasicMonitor; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporter; +import org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporterPlugin; +import org.eclipse.ui.IActionDelegate; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.progress.IProgressService; + +/** + * Action to load selected Ropse UML model and emit it as {per-package, all-packages, flattened + * packages}, {EMOF, Ecore}, {minimal, maximal, exact} associations models. + */ +public class ConversionAction implements IObjectActionDelegate +{ + private IFile file; + + public ConversionAction() { + super(); + } + + /** + * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + } + + /** + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action) { + IProgressService service = PlatformUI.getWorkbench().getProgressService(); + IRunnableWithProgress runnable = new IRunnableWithProgress() { + public void run(IProgressMonitor monitor) { + String title = "Convert Rose UML to Ecore and EMOF"; + SubMonitor subMonitor = SubMonitor.convert(monitor); + subMonitor.beginTask(title, 10); + subMonitor.subTask("Load Rose model"); + if (!nextTask(subMonitor, title + ": Load Model", 1)) + return; + RoseUMLImporter roseImporter = new RoseUMLImporter(); +// roseImporter.setUseSemiOpposites(true); + roseImporter.setModelFile(file); + IPath location = file.getLocation(); + roseImporter.getPathMap().put("CURDIR", location.removeLastSegments(1).toString());; + try { + Diagnostic diagnostic = roseImporter.computeEPackages(BasicMonitor.toMonitor(subMonitor.newChild(4))); + int severity = diagnostic.getSeverity(); + if (severity != Diagnostic.OK) { + RoseUMLImporterPlugin.showError(Utils.formatDiagnostic(diagnostic, ""), null); + } + } catch (CancellationException e) { + if (!monitor.isCanceled()) + RoseUMLImporterPlugin.showError("Failed to compute Rose content", e); + return; + } catch (Exception e) { + RoseUMLImporterPlugin.showError("Failed to compute Rose content", e); + return; + } + List<EPackage> ePackages = roseImporter.getEPackages(); + PackageManager packageManager = new PackageManager(file); + if (!nextTask(subMonitor, title + ": Emit models", 1)) + return; + OneWayAssociations oneWayAssocs = new OneWayAssociations(ePackages); + oneWayAssocs.minimise(); + packageManager.save(subMonitor, ePackages, ""); +/* if (!nextTask(subMonitor, title + ": Emit max models", 1)) + return; + oneWayAssocs.maximise(); + packageManager.save(subMonitor, ePackages, ".max"); + if (!nextTask(subMonitor, title + ": Emit min models", 1)) + return; + oneWayAssocs.minimise(); + packageManager.save(subMonitor, ePackages, ".min"); */ + if (!nextTask(subMonitor, title + ": Emit traditional models", 1)) + return; + if (Utils.convertToTraditionalEMOF(ePackages)) { + packageManager.setEcorePath("traditionalEcore"); + packageManager.setEMOFPath("traditionalEMOF"); + packageManager.save(subMonitor, ePackages, ""); + } + subMonitor.worked(1); + } + }; + try { + service.run(true, true, runnable); + } catch (InvocationTargetException e) { + RoseUMLImporterPlugin.showError("Failed to start Rose converter", e); + } catch (InterruptedException e) { + } + } + + protected boolean nextTask(SubMonitor subMonitor, String taskName, int worked) { + subMonitor.worked(worked); + if (subMonitor.isCanceled()) + return false; + subMonitor.setTaskName(taskName); + return true; + } + + /** + * @see IActionDelegate#selectionChanged(IAction, ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + file = (IFile) ((IStructuredSelection)selection).getFirstElement(); + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/OneWayAssociations.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/OneWayAssociations.java new file mode 100644 index 000000000..55f22f782 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/OneWayAssociations.java @@ -0,0 +1,86 @@ +/******************************************************************************* + * Copyright (c) 2007 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.actions; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; + +/** + * OneWayAssociations manages a set of unidirectional associations providing facilities to + * convert them from semi-opposite (two EReferences with one eOpposite) to + * bi-directional (two EReferences with two mutual eOpposite) or + * uni-directional (one EREference an no eOpposite). + */ +public class OneWayAssociations +{ + private final Map<EReference, EReference> assocs = new HashMap<EReference, EReference>(); + + public OneWayAssociations(List<EPackage> ePackages) { + findOneWayAssociations(ePackages); + } + + /** + * Find all one way associations within ePackages and its sub-packages, populating this + * with mappings from one end (the key) to the other end (the value) such that the + * key.eOpposite is non-null i.e. navigable to the value, and value.eOpposite is non-null + * i.e. not navigable to the key. + * @param ePackages + */ + protected void findOneWayAssociations(List<EPackage> ePackages) { + for (EPackage ePackage : ePackages) { + for (EClassifier eClassifier : ePackage.getEClassifiers()) { + if (eClassifier instanceof EClass) { + for (EStructuralFeature eFeature : ((EClass) eClassifier).getEStructuralFeatures()) { + if (eFeature instanceof EReference) { + EReference from = (EReference) eFeature; + EReference to = from.getEOpposite(); + if ((to != null) && (to.getEOpposite() == null)) + assocs.put(from, to); + } + } + } + } + findOneWayAssociations(ePackage.getESubpackages()); + } + } + + /** + * Convert each one way association defined by a mapping from key to value into a single + * reference without any opposite. This orphans the value reference. + */ + public void minimise() { + for (EReference from : assocs.keySet()) { + EReference to = assocs.get(from); + to.setEOpposite(null); + to.getEReferenceType().getEStructuralFeatures().remove(from); + } + } + + /** + * Convert each one way association defined by a mapping from key to value into a fully navigable + * bidirectional pair of mutually opposite references. + */ + public void maximise() { + for (EReference from : assocs.keySet()) { + EReference to = assocs.get(from); + to.setEOpposite(from); + if (from.eContainer() == null) + to.getEReferenceType().getEStructuralFeatures().add(from); + } + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/PackageManager.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/PackageManager.java new file mode 100644 index 000000000..c361589c7 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/PackageManager.java @@ -0,0 +1,341 @@ +/******************************************************************************* + * Copyright (c) 2007,2008 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.actions; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EcoreFactory; +import org.eclipse.emf.ecore.EcorePackage; +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.emf.ecore.xmi.XMLResource; +import org.eclipse.emf.ecore.xmi.impl.EMOFResourceFactoryImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporterPlugin; + +/** + * PackageManager provides facilities top save a list of packages in EMOF and Ecore, + * using one resource per package, all packages in a single resource and all package + * contents flattened into a single package in a single resource. + */ +public class PackageManager +{ + /** + * SharedIdHierarchicalENamedElementIdCreator allocates xmi:id's re-using entries from an + * EObject to xmi:id map where possible, creating hierarchical names where necessary. + */ + public static class SharedIdHierarchicalENamedElementIdCreator extends + XMIUtils.HierachicalENamedElementIdCreator + { + private final Map<EObject, String> idMap; + + private SharedIdHierarchicalENamedElementIdCreator(Map<EObject, String> idMap) { + this.idMap = idMap; + } + + @Override public String createId(EObject object, Set<String> knownIds) { + String id = idMap.get(object); + if (id == null) { + id = super.createId(object, knownIds); + if (id != null) { + idMap.put(object, id); + } + } + return id; + } + } + + protected final Resource.Factory emofFactory = new EMOFResourceFactoryImpl(); + protected final Resource.Factory ecoreFactory = new XMIResourceFactoryImpl(); + private final IProject project; + private final IPath modelPath ; + private final String modelStem; + private IPath ecorePath; + private IPath emofPath; + private String ecoreExtension; + private String emofExtension; + private ResourceSet resourceSet = null; + private Map<EObject, String> idMap = null; + + public PackageManager(IFile modelFile) { + this.project = modelFile.getProject(); + IPath path = modelFile.getProjectRelativePath(); + modelPath = path.removeLastSegments(1); + modelStem = path.removeFileExtension().lastSegment(); + setEcorePath("ecore"); + setEMOFPath("emof"); + setEcoreExtension("ecore"); + setEMOFExtension("xml"); + } + + /** + * Create an XMLResource at path within the current project, and prepare to save + * ePackages therein, by sorting packages, classifiers, structural features + * and operations into alphabetical order and assigning each a hierrachical xmi:id + * re-using xmi:ids from idMap wherever possible. + * + * @param ePackages + * @param path + * @return the resource + */ + protected XMLResource createResource(List<EPackage> ePackages, IPath path) { + IFile file = project.getFile(path); + URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true); + XMLResource resource = (XMLResource) getResourceSet().createResource(uri); + if (resource == null) + return null; + for (EPackage ePackage : ePackages) { + resource.getContents().add(ePackage); + Utils.sort(ePackage.getEClassifiers()); + for (EClassifier eClassifier : ePackage.getEClassifiers()) { + if (eClassifier instanceof EClass) { + Utils.sort(((EClass) eClassifier).getEStructuralFeatures()); + Utils.sort(((EClass) eClassifier).getEOperations()); + } + } + } + XMIUtils.IdFilter idFilter = new XMIUtils.IdFilter() + { + public boolean createId(EObject object) { + if (object == null) + return false; + if (object.eClass() == EcorePackage.Literals.EANNOTATION) + return false; + if (object.eClass() == EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY) + return false; + return true; + } + }; + XMIUtils.assignIds(resource, new SharedIdHierarchicalENamedElementIdCreator(getXMIidMap()), idFilter); + return resource; + } + + public String getEMOFExtension() { + return emofExtension; + } + + public IPath getEMOFPath() { + return emofPath; + } + + public String getEcoreExtension() { + return ecoreExtension; + } + + public IPath getEcorePath() { + return ecorePath; + } + + public ResourceSet getResourceSet() { + if (resourceSet == null) + setResourceSet(new ResourceSetImpl()); + return resourceSet; + } + + public Map<EObject, String> getXMIidMap() { + if (idMap == null) + setXMIidMap(new HashMap<EObject, String>()); + return idMap; + } + + /** + * Save all ePackages in Ecore an EMOF format to a separate file for each package, + * named as + * @param ePackages + * @param midFix + */ + public void save(IProgressMonitor monitor, List<EPackage> ePackages, String midFix) { + // + // Save all the packages to a composite file. + // + if (ePackages.size() > 1) { + saveAsEcore(monitor, ePackages, modelStem + midFix + "." + ecoreExtension); + saveAsEMOF(monitor, ePackages, modelStem + midFix + "." + emofExtension); + } + // + // Save the packages one by one to individual files. + // + if (monitor.isCanceled()) + return; + if (ecorePath != null) { + List<XMLResource> ecoreResources = new ArrayList<XMLResource>(); + getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", ecoreFactory); + for (EPackage ePackage : ePackages) { + List<EPackage> saveList = new ArrayList<EPackage>(); + saveList.add(ePackage); + ecoreResources.add(createResource(saveList, ecorePath.append(ePackage.getName() + midFix + "." + ecoreExtension))); + } + for (XMLResource resource : ecoreResources) + saveResource(monitor, resource); + } + if (monitor.isCanceled()) + return; + if (emofPath != null) { + List<XMLResource> emofResources = new ArrayList<XMLResource>(); + getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", emofFactory); + for (EPackage ePackage : ePackages) { + List<EPackage> saveList = new ArrayList<EPackage>(); + saveList.add(ePackage); + emofResources.add(createResource(saveList, emofPath.append(ePackage.getName() + midFix + "." + emofExtension))); + } + for (XMLResource resource : emofResources) + saveResource(monitor, resource); + } + // + // Create a package containing the contents of all packages and save it to a flattened file. + // + if (monitor.isCanceled()) + return; + if (ePackages.size() > 1) + saveAsFlatPackage(monitor, ePackages, midFix); + } + + /** + * Save the ePackages as an EMOF file named fileName on the emofPath, creating/re-using + * xmi:id's in/from idMap. + * + * @param ePackages to save + * @param fileName to save to + */ + protected void saveAsEMOF(IProgressMonitor monitor, List<EPackage> ePackages, String fileName) { + if (monitor.isCanceled()) + return; + if (emofPath != null) { + getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", emofFactory); + XMLResource emofResource = createResource(ePackages, emofPath.append(fileName)); + saveResource(monitor, emofResource); + } + } + + /** + * Save the ePackages as an Ecore file named fileName on the ecorePath, creating/re-using + * xmi:id's in/from idMap. + * + * @param ePackages to save + * @param fileName to save to + */ + protected void saveAsEcore(IProgressMonitor monitor, List<EPackage> ePackages, String fileName) { + if (monitor.isCanceled()) + return; + if (ecorePath != null) { + getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", ecoreFactory); + XMLResource ecoreResource = createResource(ePackages, ecorePath.append(fileName)); + saveResource(monitor, ecoreResource); + } + } + + /** + * Save the contents of all ePackages in a single flattened package named as the modeltem followed + * by midFix, sharing xmi:ids via idMap. + * + * @param ePackages to save + * @param midFix middle section of file name + */ + protected void saveAsFlatPackage(IProgressMonitor monitor, List<EPackage> ePackages, String midFix) { + // + // Save the incoming package contents + // + Map<EPackage, List<EAnnotation>> oldAnnotations = new HashMap<EPackage, List<EAnnotation>>(); + Map<EPackage, List<EClassifier>> oldClassifiers = new HashMap<EPackage, List<EClassifier>>(); + Map<EPackage, List<EPackage>> oldSubpackages = new HashMap<EPackage, List<EPackage>>(); + for (EPackage ePackage : ePackages) { + oldAnnotations.put(ePackage, new ArrayList<EAnnotation>(ePackage.getEAnnotations())); + oldClassifiers.put(ePackage, new ArrayList<EClassifier>(ePackage.getEClassifiers())); + oldSubpackages.put(ePackage, new ArrayList<EPackage>(ePackage.getESubpackages())); + } + // + // Create a Flat package to receive all contents + // + String name = "Flat" + modelStem; + String nsURI = ePackages.get(ePackages.size()-1).getNsURI(); + IPath nsPath = new Path(nsURI); + nsPath = nsPath.removeLastSegments(1).append(name.toLowerCase() + ".xml"); + EPackage flatPackage = EcoreFactory.eINSTANCE.createEPackage(); + flatPackage.setName(name); + flatPackage.setNsURI(nsPath.toString()); + flatPackage.setNsPrefix(name.toLowerCase()); + // + // Move all contents into the Flat package + // + for (EPackage ePackage : ePackages) { + flatPackage.getEAnnotations().addAll(ePackage.getEAnnotations()); + flatPackage.getEClassifiers().addAll(ePackage.getEClassifiers()); + flatPackage.getESubpackages().addAll(ePackage.getESubpackages()); + } + // + // Save the Flat package + // + List<EPackage> saveList = new ArrayList<EPackage>(); + saveList.add(flatPackage); + saveAsEcore(monitor, saveList, name + midFix + "." + ecoreExtension); + saveAsEMOF(monitor, saveList, name + midFix + "." + emofExtension); + // + // Restore the incoming package contents + // + for (EPackage ePackage : ePackages) { + ePackage.getEAnnotations().addAll(oldAnnotations.get(ePackage)); + ePackage.getEClassifiers().addAll(oldClassifiers.get(ePackage)); + ePackage.getESubpackages().addAll(oldSubpackages.get(ePackage)); + } + } + + public void saveResource(IProgressMonitor monitor, XMLResource resource) { + if (monitor.isCanceled()) + return; + try { + monitor.subTask("Saving " + resource.getURI()); + resource.save(null); + } catch (IOException e) { + RoseUMLImporterPlugin.showError("Failed to save '" + resource.getURI() + "'", e); + } + } + + public void setEMOFExtension(String emofExtension) { + this.emofExtension = emofExtension; + } + + public void setEMOFPath(String emofPath) { + this.emofPath = emofPath != null ? modelPath.append(emofPath) : null; + } + + public void setEcoreExtension(String ecoreExtension) { + this.ecoreExtension = ecoreExtension; + } + + public void setEcorePath(String ecorePath) { + this.ecorePath = ecorePath != null ? modelPath.append(ecorePath) : null; + } + + public void setResourceSet(ResourceSet resourceSet) { + this.resourceSet = resourceSet; + } + + public void setXMIidMap(Map<EObject, String> idMap) { + this.idMap = idMap; + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/Utils.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/Utils.java new file mode 100644 index 000000000..0d0506044 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/Utils.java @@ -0,0 +1,98 @@ +/******************************************************************************* + * Copyright (c) 2007 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.actions; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.ENamedElement; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.xmi.impl.EMOFExtendedMetaData; + +public class Utils +{ + /** + * If ePackages contains a PrimitiveTypes and an EMOF package, move all classifiers from + * PrimitiveTypes to EMOF, change the EMOF nsURI to http://schema.omg.org/spec/mof/2.0/emof.xmi + * and remove PrimitiveTypes from ePackages. + * + * @param ePackages + * @return true if conversion occurred + */ + public static boolean convertToTraditionalEMOF(List<EPackage> ePackages) { + EPackage primitiveTypesPackage = Utils.findNamedElement(ePackages, "PrimitiveTypes"); + EPackage emofPackage = Utils.findNamedElement(ePackages, "EMOF"); + if ((primitiveTypesPackage == null) || (emofPackage == null)) + return false; + emofPackage.getEClassifiers().addAll(primitiveTypesPackage.getEClassifiers()); + emofPackage.setNsURI(EMOFExtendedMetaData.EMOF_PACKAGE_NS_URI_2_0); + ePackages.remove(primitiveTypesPackage); + return true; + } + + public static <T extends ENamedElement> T findNamedElement(List<? extends T> elements, String name) { + for (T element : elements) + if (name.equals(element.getName())) + return element; + return null; + } + + public static String formatDiagnostic(Diagnostic diagnostic, String prefix) + { + StringBuilder result = new StringBuilder(); + result.append(prefix); +// result.append("Diagnostic "); + switch (diagnostic.getSeverity()) + { + case Diagnostic.OK: result.append("OK"); break; + case Diagnostic.INFO: result.append("INFO"); break; + case Diagnostic.WARNING: result.append("WARNING"); break; + case Diagnostic.ERROR: result.append("ERROR"); break; + case Diagnostic.CANCEL: result.append("CANCEL"); break; + default: result.append(Integer.toHexString(diagnostic.getSeverity())); break; + } +// result.append(" source="); +// result.append(diagnostic.getSource()); + result.append(" code="); + result.append(diagnostic.getCode()); + result.append(' '); + result.append(diagnostic.getMessage()); + List<?> data = diagnostic.getData(); + if ((data != null) && !data.isEmpty()) + { + result.append(" data="); + result.append(data); + } + List<Diagnostic> children = diagnostic.getChildren(); + if ((children != null) && !children.isEmpty()) + for (Diagnostic child : children) + { + result.append('\n'); + result.append(formatDiagnostic(child, prefix + " ")); + } + return result.toString(); + } + + public static <T extends ENamedElement> void sort(EList<T> eList) { + List<T> list = new ArrayList<T>(eList); + Collections.sort(list, new Comparator<T>() { + public int compare(T o1, T o2) { + return o1.getName().compareTo(o2.getName()); + }}); + for (int i = 0; i < list.size(); i++) { + eList.move(i, list.get(i)); + } + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/XMIUtils.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/XMIUtils.java new file mode 100644 index 000000000..d514b61b8 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/actions/XMIUtils.java @@ -0,0 +1,103 @@ +/******************************************************************************* + * Copyright (c) 2007,2008 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.actions; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.ListIterator; +import java.util.Set; + +import org.eclipse.emf.common.util.TreeIterator; +import org.eclipse.emf.ecore.ENamedElement; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.xmi.XMLResource; + +/** + * This trimmed copy of org.eclipse.gmt.umlx.xmi.util split off to avoid + * undue QVT Rose UML dependencies on UMLX. + */ +public class XMIUtils +{ + public static interface IdCreator + { + public String createId(EObject eObject, Set<String> knownIds); + } + + /** + * Create xmi:id's using the same hierarchical/URI fragment algorithm as EMOFResourceImpl + */ + public static class HierachicalENamedElementIdCreator implements IdCreator + { + public HierachicalENamedElementIdCreator() {} + + public String createId(EObject eObject, Set<String> knownIds) { + List<String> uriFragmentPath = new ArrayList<String>(); + for (EObject container = eObject.eContainer(); container != null; container = eObject.eContainer()) { + uriFragmentPath.add(((InternalEObject)container).eURIFragmentSegment(eObject.eContainmentFeature(), eObject)); + eObject = container; + } + StringBuffer result; + if (eObject instanceof ENamedElement) + result = new StringBuffer(((ENamedElement)eObject).getName()); + else + result = new StringBuffer("_" + Integer.toString(eObject.eResource().getContents().indexOf(eObject))); + for (ListIterator<String> i = uriFragmentPath.listIterator(uriFragmentPath.size()); i.hasPrevious(); ) { + result.append('.'); + result.append(i.previous()); + } + return result.toString(); + } + } + + public static interface IdFilter + { + public boolean createId(EObject eObject); + } + + /** + * Assign an xmi:id to all objects in resource. A non-null idFilter may choose whether an xmi:id + * is assigned. The idCreator is responsible for providing a candidate xmi:id, which, if not unique + * will be suffixed until it is. + * + * @param resource + * @param idCreator + * @param idFilter + */ + public static void assignIds(Resource resource, IdCreator idCreator, IdFilter idFilter) { + if (!(resource instanceof XMLResource)) + return; + XMLResource xmlResource = (XMLResource) resource; + final Set<String> knownIds = new HashSet<String>(256); // The XMLResource.getEObjectToIDMap() method is deprecated + // and the replacement slow since we need a total traversal + final List<EObject> idLess = new ArrayList<EObject>(100); + for (TreeIterator<EObject> iterator = resource.getAllContents(); iterator.hasNext(); ) { + EObject eObject = iterator.next(); + String id = xmlResource.getID(eObject); + if (id != null) + knownIds.add(id); + else if ((idFilter == null) || idFilter.createId(eObject)) + idLess.add(eObject); + } + for (EObject eObject : idLess) { + String id = idCreator.createId(eObject, knownIds); + if (id != null) { + String uniqueId = id; + for (int i = 1; knownIds.contains(uniqueId); i++) + uniqueId = id + '_' + i; + xmlResource.setID(eObject, uniqueId); + knownIds.add(uniqueId); + } + } + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/builder/RoseUMLEcoreBuilder.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/builder/RoseUMLEcoreBuilder.java new file mode 100644 index 000000000..e39930952 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/builder/RoseUMLEcoreBuilder.java @@ -0,0 +1,200 @@ +/******************************************************************************* + * Copyright (c) 2007 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.builder; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.emf.codegen.util.CodeGenUtil; +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EcoreFactory; +import org.eclipse.emf.ecore.xmi.impl.EMOFExtendedMetaData; +import org.eclipse.emf.importer.rose.RoseImporterPlugin; +import org.eclipse.emf.importer.rose.builder.RoseEcoreBuilder; +import org.eclipse.emf.importer.rose.builder.TableObject; +import org.eclipse.emf.importer.rose.parser.RoseNode; + +/** + * Traverses the RoseUML file and create Ecore object in memory. + * <p> + * The derived implementation + * <br>observes the {ordered} constraint and sets ordered accordingly + * <br>use comments/annotations for unnavigable opposite role names + * <br>use the OCL lower case default role naming + */ +public class RoseUMLEcoreBuilder extends RoseEcoreBuilder +{ + public static final String OMITTED_REFERENCE_NAME = "omitted"; + protected Map<EReference, EReference> oneWayAssocs = new HashMap<EReference, EReference>(); + + public RoseUMLEcoreBuilder(RoseUMLUtil roseUtil) + { + super(roseUtil); + } + + protected RoseUMLUtil getRoseUtil() { + return (RoseUMLUtil) roseUtil; + } + + /** + * Mark any omitted reference name as missing, to avoid inherited fix up until we are + * ready to fix it up ourselves via validateReferenceName. + */ + protected void invalidateReferenceName(EReference ref) { + String name = ref.getName(); + if ((name == null) || (name.length() <= 0)) + ref.setName(OMITTED_REFERENCE_NAME); + } + + /** + * Override to setOrdered() according to "{ordered}" constraint. + */ + @Override + protected void setEReferenceProperties(RoseNode roseNode, EReference eReference) + { + super.setEReferenceProperties(roseNode, eReference); + boolean isOrdered = getRoseUtil().hasOrderedConstraint(roseNode); + eReference.setOrdered(isOrdered); + RoseNode assocNode = roseNode.getParent().getParent(); + Object eClass = assocNode.getNode(); + if (eClass instanceof EClass) { + ((EClass) eClass).getEStructuralFeatures().add(eReference); + eStructuralFeatures.remove(eReference); + } + } + + @Override + protected void setEReferenceIsContainment(EReference ref, RoseNode role1, RoseNode role2) { + super.setEReferenceIsContainment(ref, role1, role2); + if (ref.isContainment() || ref.isContainer()) { + ref.setResolveProxies(false); + if (ref.getEOpposite() != null) + ref.getEOpposite().setResolveProxies(false); + } + if (ref.getUpperBound() == 1) + ref.setOrdered(true); + } + + /** + * Override to add reference naming resolution. + */ + @Override + public void setETypeClassifier() { + super.setETypeClassifier(); + for (EReference from : oneWayAssocs.keySet()) { + EReference to = oneWayAssocs.get(from); + boolean nameIsDefault = validateReferenceName(from); + validateReferenceName(to); + if (!nameIsDefault) { + EAnnotation eAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); + eAnnotation.setSource(EMOFExtendedMetaData.EMOF_PROPERTY_OPPOSITE_ROLE_NAME_ANNOTATION_SOURCE); + eAnnotation.getDetails().put(EMOFExtendedMetaData.EMOF_COMMENT_BODY, from.getName()); + to.getEAnnotations().add(eAnnotation); + } + to.setEOpposite(null); + } + } + + /** + * Set omitted reference name to the target type with a leading lower case letter. + * (OCL 06-05-01 7.5.3 Missing AssociationEnd names). + * + * Returns true if the name is the default and so could be omitted. + */ + protected boolean validateReferenceName(EReference ref) { + String typeName = CodeGenUtil.validJavaIdentifier(ref.getEType().getName()); + String defaultName = Character.toLowerCase(typeName.charAt(0)) + typeName.substring(1); + String name = ref.getName(); + if (name == OMITTED_REFERENCE_NAME) { + ref.setName(defaultName); + return true; + } + return defaultName.equals(name); + } + + /** + * Override to reset eGenericType1, eGenericType2; a very cosmetic bug-fix. + */ + @Override + protected void visitAssociation(RoseNode roseNode, String roseNodeValue, + String objectKey, String objectName, Object parent) { + eGenericType1 = null; + eGenericType2 = null; + super.visitAssociation(roseNode, roseNodeValue, objectKey, objectName, parent); + } + + /** + * Override to create references for non-navigable roles too. + */ + @Override + protected void visitRole(RoseNode roseNode, String roseNodeValue, + String objectKey, String objectName, Object parent) { + super.visitRole(roseNode, roseNodeValue, objectKey, objectName, parent); + RoseUMLUtil roseUtil = getRoseUtil(); +// if (roseUtil.getUseSemiOpposites()) { + if (ref1 != null && ref2 != null && role1 != null && role2 != null) + { + invalidateReferenceName(ref1); + invalidateReferenceName(ref2); + String ref1Quidu = role1.getRoseRefId(); + if (ref1Quidu != null && !ref1Quidu.equals("")) + { + ref1Quidu = ref1Quidu.substring(1, ref1Quidu.length() - 1); + } + String ref2Quidu = role2.getRoseRefId(); + if (ref2Quidu != null && !ref2Quidu.equals("")) + { + ref2Quidu = ref2Quidu.substring(1, ref2Quidu.length() - 1); + } + boolean ref1Navigable = role1.isNavigable(); + boolean ref2Navigable = role2.isNavigable(); + if (!ref1Navigable) + { + assert ref2Navigable; + roseUtil.putRef(ref1, ref2Quidu); + TableObject obj = (TableObject)roseUtil.getQuid(ref1Quidu); + if (obj != null) + { + roseUtil.putType(eGenericType1 == null ? ref1 : eGenericType1, obj.getName()); + } + else + { + warning(RoseImporterPlugin.INSTANCE.getString("_UI_UnresolvedTypeNameFor_message", new Object []{ + role1.getRoseSupplier(), + ref1.getName() })); + roseUtil.putType(eGenericType1 == null ? ref1 : eGenericType1, "EObject"); + } + oneWayAssocs.put(ref1, ref2); + } + if (!ref2Navigable) + { + assert ref1Navigable; + roseUtil.putRef(ref2, ref1Quidu); + TableObject obj = (TableObject)roseUtil.getQuid(ref2Quidu); + if (obj != null) + { + roseUtil.putType(eGenericType2 == null ? ref2 : eGenericType2, obj.getName()); + } + else + { + warning(RoseImporterPlugin.INSTANCE.getString("_UI_UnresolvedTypeNameFor_message", new Object []{ + role2.getRoseSupplier(), + ref2.getName() })); + roseUtil.putType(eGenericType2 == null ? ref2 : eGenericType2, "EObject"); + } + oneWayAssocs.put(ref2, ref1); + } + } +// } + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/builder/RoseUMLUtil.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/builder/RoseUMLUtil.java new file mode 100644 index 000000000..927350e4a --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/builder/RoseUMLUtil.java @@ -0,0 +1,106 @@ +/******************************************************************************* + * Copyright (c) 2007,2008 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.builder; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.StringTokenizer; +import java.util.concurrent.CancellationException; + +import org.eclipse.emf.common.util.Monitor; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.resource.URIConverter; +import org.eclipse.emf.importer.rose.builder.RoseUtil; +import org.eclipse.emf.importer.rose.builder.UnitTreeNode; +import org.eclipse.emf.importer.rose.parser.RoseNode; +import org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporter; + +/** + * Provide functions to process a Rose UML file. + * <p> + * The derived implementation supports access to inherited tables by the derived + * RoseUMLEcoreBuilder, maintenance of a monitor and access to the {ordered} constraint. + */ +public class RoseUMLUtil extends RoseUtil +{ + protected final RoseUMLImporter roseUMLImporter; + + public RoseUMLUtil(RoseUMLImporter roseUMLImporter, URIConverter uriConverter) + { + super(uriConverter); + this.roseUMLImporter = roseUMLImporter; + roseEcoreBuilder = new RoseUMLEcoreBuilder(this); + } + + @Override public UnitTreeNode createRoseUnitTreeAndTable(String fileNameNodeValue, UnitTreeNode topNode) throws Exception { + notifySubTask("Loading " + fileNameNodeValue, 0); + return super.createRoseUnitTreeAndTable(fileNameNodeValue, topNode); + } + + /** + * Return the Rose Constraints string as a list of individual constraints formed + * by splitting at commas and then trimming whitespace. + * @param roseNode + * @return the individual constraints + */ + public List<String> getConstraints(RoseNode roseNode) { + String constraintString = roseNode.getConstraints(); + if (constraintString == null) + return Collections.emptyList(); + List<String> constraints = new ArrayList<String>(); + StringTokenizer tokenizer = new StringTokenizer(constraintString, ","); + while (tokenizer.hasMoreTokens()) + constraints.add(tokenizer.nextToken().trim()); + return constraints; + } + + public Object getQuid(String quid) { + return quidTable.get(quid); + } + + /** + * Return true if roseNode has an 'ordered' constraint. + * @param roseNode + * @return true if ordered + */ + public boolean hasOrderedConstraint(RoseNode roseNode) { + List<String> constraints = getConstraints(roseNode); + for (String constraint : constraints) + if ("ordered".equals(constraint)) + return true; + return false; + } + + protected void notifySubTask(String subTaskName, int worked) { + Monitor monitor = roseUMLImporter.getMonitor(); + if (monitor != null) { + if (monitor.isCanceled()) + throw new CancellationException("Cancellation requested"); + monitor.subTask(subTaskName); + monitor.worked(worked); + } + } + + @Override public void processUnitTree(UnitTreeNode unitTree) throws Exception { + notifySubTask("Parsing Rose Model", 1); + super.processUnitTree(unitTree); + } + + public void putRef(EReference ref, String quid) { + refTable.put(ref, quid); + } + + public void putType(EObject eObject, String name) { + typeTable.put(eObject, name); + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/ui/RoseUMLDetailPage.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/ui/RoseUMLDetailPage.java new file mode 100644 index 000000000..77e75e7c6 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/ui/RoseUMLDetailPage.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2007 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.ui; + +import org.eclipse.emf.importer.ModelImporter; +import org.eclipse.emf.importer.rose.ui.RoseDetailPage; +import org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporterPlugin; + + +/** + * @since 2.1.0 + */ +public class RoseUMLDetailPage extends RoseDetailPage +{ + public RoseUMLDetailPage(ModelImporter modelImporter, String pageName) + { + super(modelImporter, pageName); + + setTitle(RoseUMLImporterPlugin.INSTANCE.getString("_UI_RoseUMLModelImport_title")); + setDescription(RoseUMLImporterPlugin.INSTANCE.getString(showGenModel() ? + "_UI_RoseUMLModelImportNewProject_description" : "_UI_RoseUMLModelImportFile_description")); + } +}
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/ui/RoseUMLImporterWizard.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/ui/RoseUMLImporterWizard.java new file mode 100644 index 000000000..e6608aca4 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/src/org/eclipse/qvt/declarative/importer/roseuml/ui/RoseUMLImporterWizard.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2007 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.ui; + +import org.eclipse.emf.converter.ModelConverter; +import org.eclipse.emf.importer.rose.ui.RoseImporterWizard; +import org.eclipse.emf.importer.ui.contribution.base.ModelImporterPackagePage; +import org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporter; + + +/** + */ +public class RoseUMLImporterWizard extends RoseImporterWizard +{ + @Override + protected ModelConverter createModelConverter() + { + return new RoseUMLImporter(); + } + + @Override + public void addPages() + { + RoseUMLDetailPage detailPage = new RoseUMLDetailPage(getModelImporter(), "RoseUMLModel"); + addPage(detailPage); + + ModelImporterPackagePage packagePage = new ModelImporterPackagePage(getModelImporter(), "RoseUMLPackages"); + packagePage.setShowReferencedGenModels(true); + addPage(packagePage); + } +} diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/tasks/org/eclipse/qvt/declarative/importer/roseuml/taskdefs/RoseUMLGeneratorTask.java b/archive/org.eclipse.qvt.declarative.importer.roseuml/tasks/org/eclipse/qvt/declarative/importer/roseuml/taskdefs/RoseUMLGeneratorTask.java new file mode 100644 index 000000000..8fa81033b --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/tasks/org/eclipse/qvt/declarative/importer/roseuml/taskdefs/RoseUMLGeneratorTask.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * Copyright (c) 2007 E.D.Willink 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: + * E.D.Willink - initial API and implementation + *******************************************************************************/ +package org.eclipse.qvt.declarative.importer.roseuml.taskdefs; + +import org.eclipse.emf.importer.rose.taskdefs.RoseGeneratorTask; +import org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporterApplication; + + +/** + * <p> + * Generates source code from models specifed in <b>Rose</b> files. Exposes some + * functionalities available on the {@link org.eclipse.qvt.declarative.importer.roseuml.RoseUMLImporterApplication} + * class - check its <tt>printUsage()</tt> method for detailed information on the arguments + * you can use with this task. + * </p> + * <p> + * This task is supposed to be executed by a Eclipse driver with the + * <b>org.eclipse.emf.ant</b> plugin. It is neither necessary to use Ant's task + * <tt>TaskDef</tt> to declare this task in a script nor to change the Ant's runtime + * classpath. + * </p> + * <p> + * The following command line will start a headless Eclipse instance and run the specified + * Ant script. + * </p> + * <p> + * java -classpath <i>eclipseDir</i>/startup.jar org.eclipse.core.launcher.Main + * -data <i>worspaceDir</i> + * -application org.eclipse.ant.core.antRunner + * -buildfile <i>antScript</i> + * </p> + * <p> + * Usage example: + * </p> + * <pre> + * <emf.Rose2Java model="c:/lib/model/lib.mdl" + * genModel="c:/lib/emf/lib.genmodel" + * modelProject="c:/lib" + * modelProjectFragmentPath="src"> + * <arg line="-package library library library.xmi org.examples Library"/> + * <arg line="-pathMap VABASE_PLUGINS_PATH d:/eclipse/plugins"/> + * </emf.Rose2Java> + * </pre> + */ +public class RoseUMLGeneratorTask extends RoseGeneratorTask +{ + @Override + protected void createGenModel(String[] arguments) throws Exception + { + new RoseUMLImporterApplication().run(getProgressMonitor(), arguments); + } +}
\ No newline at end of file diff --git a/archive/org.eclipse.qvt.declarative.importer.roseuml/toc.xml b/archive/org.eclipse.qvt.declarative.importer.roseuml/toc.xml new file mode 100644 index 000000000..85f130f92 --- /dev/null +++ b/archive/org.eclipse.qvt.declarative.importer.roseuml/toc.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?NLS TYPE="org.eclipse.help.toc"?> + +<toc label="(QVT Declarative) Rose UML Importer Guide" topic="html/index.html"> + <topic label="Administrivia"> + <topic label="Changes" href="html/changes.html"/> + <topic label="Bugs" href="html/bugs.html"/> + <topic label="Installation" href="html/installation.html"/> + <topic label="License" href="html/epl-v10.html"/> + </topic> +</toc> diff --git a/archive/psf/.project b/archive/psf/.project new file mode 100644 index 000000000..69d14084a --- /dev/null +++ b/archive/psf/.project @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>qvtd-psf</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + </buildSpec> + <natures> + </natures> +</projectDescription> diff --git a/archive/psf/ocl-editor.psf b/archive/psf/ocl-editor.psf new file mode 100644 index 000000000..9bba09fdd --- /dev/null +++ b/archive/psf/ocl-editor.psf @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<psf version="2.0"> + <provider id="org.eclipse.team.cvs.core.cvsnature"> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/net.sourceforge.lpg.lpgjavaruntime,net.sourceforge.lpg.lpgjavaruntime,v1_1"/> + <project reference="1.0,:pserver:anonymous@lpg.cvs.sourceforge.net:/cvsroot/lpg,lpg.runtime.java,lpg.runtime.java,"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.emf/org.eclipse.emf.validation/plugins/org.eclipse.emf.validation,org.eclipse.emf.validation,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.emf/org.eclipse.emf.transaction/plugins/org.eclipse.emf.transaction,org.eclipse.emf.transaction,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.emf/org.eclipse.emf.transaction/plugins/org.eclipse.emf.transaction.ui,org.eclipse.emf.transaction.ui,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.emf/org.eclipse.emf.transaction/plugins/org.eclipse.emf.workspace,org.eclipse.emf.workspace,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.emf/org.eclipse.emf.transaction/plugins/org.eclipse.emf.workspace.ui,org.eclipse.emf.workspace.ui,"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl,org.eclipse.ocl,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl.edit,org.eclipse.ocl.edit,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl.ecore,org.eclipse.ocl.ecore,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl.ecore.edit,org.eclipse.ocl.ecore.edit,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl.uml,org.eclipse.ocl.uml,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl.uml.edit,org.eclipse.ocl.uml.edit,"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt,org.eclipse.qvt,"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore,org.eclipse.qvt.declarative.ecore,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtbase,org.eclipse.qvt.declarative.ecore.qvtbase,"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.imp.runtime,org.eclipse.imp.runtime,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.model,org.eclipse.qvt.declarative.editor.model,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.model.edit,org.eclipse.qvt.declarative.editor.model.edit,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.model.editor,org.eclipse.qvt.declarative.editor.model.editor,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ocl.ui,org.eclipse.qvt.declarative.editor.ocl.ui,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui,org.eclipse.qvt.declarative.editor.ui,"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.emof.emof,org.eclipse.qvt.declarative.emof.emof,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.emof.essentialocl,org.eclipse.qvt.declarative.emof.essentialocl,"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.examples,org.eclipse.qvt.declarative.examples,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/examples/org.eclipse.qvt.declarative.examples.ocl.empty,org.eclipse.qvt.declarative.examples.ocl.empty,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/examples/org.eclipse.qvt.declarative.examples.ocl.royalandloyal,org.eclipse.qvt.declarative.examples.ocl.royalandloyal,"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.modelregistry,org.eclipse.qvt.declarative.modelregistry,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.modelregistry.edit,org.eclipse.qvt.declarative.modelregistry.edit,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.modelregistry.editor,org.eclipse.qvt.declarative.modelregistry.editor,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.modelregistry.ui,org.eclipse.qvt.declarative.modelregistry.ui,"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser,org.eclipse.qvt.declarative.parser,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.ocl,org.eclipse.qvt.declarative.parser.ocl,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.ui,org.eclipse.qvt.declarative.parser.ui,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.unresolved,org.eclipse.qvt.declarative.parser.unresolved,"/> + </provider> +</psf> diff --git a/archive/releng/ReadMe.txt b/archive/releng/ReadMe.txt new file mode 100644 index 000000000..468767ab5 --- /dev/null +++ b/archive/releng/ReadMe.txt @@ -0,0 +1,11 @@ +Following derived from: +http://wiki.eclipse.org/MoDisco/Releng/How_to_Use +http://wiki.eclipse.org/MoDisco/Releng/How_it_Works + + + + + +ssh <commiterid>@build.eclipse.org +cd /opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-integration/workspace/build/ +cp -r I201007100705 /home/data/httpd/download.eclipse.org/modeling/m2m/qvtd/downloads/drops/0.8.0/ diff --git a/archive/releng/build.properties b/archive/releng/build.properties new file mode 100644 index 000000000..3d0fce2d0 --- /dev/null +++ b/archive/releng/build.properties @@ -0,0 +1,76 @@ +## BEGIN PROJECT BUILD PROPERTIES ## + +thirdPartyDownloadLicenseAcceptance="I accept" + +projectid=m2m.qvtd +zipPrefix=m2m-qvtd-incubation +incubation=-incubation +version=0.8.0 +buildType=N +mainFeatureToBuildID=org.eclipse.qvt.declarative +testFeatureToBuildID=org.eclipse.qvt.declarative.test + +build.steps=buildZips,buildTests,buildUpdate,generateDigests,testLocal,publish,cleanup,map2psf + +# can be SDK, runtime, or update zips. +dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/eclipse-SDK-3.6-linux-gtk-ppc.tar.gz + +#impURL=http://download.eclipse.org/technology/imp/updates/ +# can also specify repos (local/remote sites or local zips) THEN a list of features to install (see below) +#repositoryURLs=${impURL} +repositoryURLs=\ +http://download.eclipse.org/modeling/emf/transaction/downloads/drops/1.4.0/R201006151000/emf-transaction-Update-1.4.0.zip,\ +http://download.eclipse.org/modeling/emf/validation/downloads/drops/1.4.0/R201006151000/emf-validation-Update-1.4.0.zip,\ +http://download.eclipse.org/modeling/mdt/ocl/downloads/drops/3.0.0/R201006141954/mdt-ocl-Update-3.0.0.zip,\ +http://download.eclipse.org/modeling/mdt/uml2/downloads/drops/3.1.0/R201006071241/mdt-uml2-Update-3.1.0.zip,\ +http://download.eclipse.org/modeling/emf/emf/downloads/drops/2.6.0/R201006141136/emf-xsd-Update-2.6.0.zip,\ +http://download.eclipse.org/tools/orbit/downloads/drops/R20100519200754/repository +featureIDsToInstall=org.eclipse.emf+org.eclipse.xsd+org.eclipse.uml2+org.eclipse.ocl+org.eclipse.ocl.edit+org.eclipse.emf.transaction+org.eclipse.emf.workspace+org.eclipse.emf.validation +pluginIDsToInstall=org.eclipse.ocl.examples.modelregistry.ui + +# multiple installs as a single operation (requires Eclipse 3.5) +# featureIDsToInstall=org.eclipse.emf+org.eclipse.birt+org.eclipse.cdt +# install each feature.group in a separate operation (works with Eclipse 3.4) +#featureIDsToInstall=lpg.runtime.java,org.eclipse.imp.runtime +#featureIDsToInstall=lpg.runtime,org.eclipse.imp.runtime +#pluginIDsToInstall=org.eclipse.imp.runtime + +compilerArg=-enableJavadoc -encoding UTF-8 +flattenDependencies=true +parallelCompilation=true +generateFeatureVersionSuffix=true +individualSourceBundles=true + +JAVA50_HOME=/opt/public/common/ibm-java2-ppc-50 +JAVA14_HOME=/opt/public/common/ibm-java2-142 +JAVA_HOME=${JAVA50_HOME} + +################################################################################################################# + +#TODO: [269290] make javadokken work. +#javadocEnabled=true +#JAVADOC14_HOME=/opt/public/common/ibm-java2-ppc-50/bin + +# TODO: are these still required/used? +#projRelengRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/tools +projRelengRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling +projRelengPath=org.eclipse.m2m/org.eclipse.qvt.declarative/releng +basebuilderBranch=R35_RC4 + +LPGRuntimeVersion = 2.0.17 +domainNamespace=* +projNamespace=org.eclipse.qvtd +projRelengName=org.eclipse.qvtd.releng + +# TODO: not used yet +# define regex patterns to use when automatically selecting zips from a directory or list file +#dependencyRegexFilter=R3_4_maintenance:M200.*/eclipse-SDK-|R-.*200.*/eclipse-SDK- + +# TODO: not used yet +# could be file://, http://, cvs path, or relative path? +#mapLocation=maps/ + +# TODO: implement use of packager.map for defining deps? +# TODO: could be relative, absolute (local), or http/ftp paths to archives when defining dependencyURLs above + +## END PROJECT BUILD PROPERTIES ## diff --git a/archive/releng/build.xml b/archive/releng/build.xml new file mode 100644 index 000000000..aead412ee --- /dev/null +++ b/archive/releng/build.xml @@ -0,0 +1,73 @@ +<project default="run" name="org.eclipse.qvt.declarative/releng/build.xml - Run a QVTd build using the Athena CBI"> + <target name="run"> + <!-- + 1. You must check out the following projects to your workspace: + + org.eclipse.releng.basebuilder + org.eclipse.dash.common.releng + org.eclipse.myproject.releng + + 2. You must provide Ant-Contrib in one of four places: + + org.eclipse.dash.common.releng/lib/ant-contrib.jar + org.eclipse.myproject.releng/lib/ant-contrib.jar + ${thirdPartyJarsDir}/ant-contrib.jar (path can be customized below) + /usr/share/java/ant-contrib.jar (may require a symlink) + + You can install Ant-Contrib 1.0b2 via RPM, or download it here: + + http://downloads.sourceforge.net/ant-contrib/ant-contrib-1.0b2-bin.zip + + 3. If your project's sources are in SVN, you must unpack this zip into the basebuilder project's plugins/ folder: + + http://downloads.sourceforge.net/svn-pde-build/org.eclipse.pde.build.svn-1.0.1RC2.zip + + 4. To run automated JUnit tests headlessly, you will require Xvfb or Xvnc; without this, + UI tests will be launched into your current OS session (ie., on view port :0) and you may + inadvertently interact with them. (Non-UI tests can be run without fear of accidental + interaction and do not have this requirement.) + + 5. You must also ensure that the path specified for Java, and the version of Eclipse stated in build.properties + are correct for your machine. Edit these properties to suit your needs. Note that JAVA*_HOME variables are for + convenience, set in common.releng/server.properties. You can override them in your build.properties, or define + different defaults in server.properties, if you intend to run more than one build on this server. + + dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/S-3.5M5-200902021535/eclipse-SDK-3.5M5-linux-gtk.tar.gz + JAVA_HOME=${JAVA14_HOME} + --> + + <!-- load properties and set timestamp for the build --> + <property file="build.properties" /> + <tstamp> + <format property="buildTimestamp" pattern="yyyyMMddHHmm" /> + </tstamp> + + <!-- + to build from HEAD, uncomment these lines + <property name="forceContextQualifier" value="v${buildTimestamp}" /> + <property name="fetchTag" value="HEAD" /> + --> + + <!-- calculate workspaceDir as parent of this folder, the project's .releng folder (relengBuilderDir) --> + <property name="relengBuilderDir" value="${basedir}" /> + <dirname file="${relengBuilderDir}" property="workspaceDir" /> + + <!-- + can build in /tmp, eg., in /tmp/build, or in workspace, eg., + ${WORKSPACE}/build + --> + <property name="writableBuildRoot" value="/tmp/build" /> + + <!-- + can be simple path, eg., + ${writableBuildRoot}/${buildType}${buildTimestamp} or longer, eg., + ${writableBuildRoot}/${topprojectName}/${projectName}/downloads/drops/${version}/${buildType}${buildTimestamp} or + ${writableBuildRoot}/${topprojectName}/${projectName}/${subprojectName}/downloads/drops/${version}/${buildType}${buildTimestamp} + --> + <property name="buildDir" value="${writableBuildRoot}/${buildType}${buildTimestamp}" /> + + <!-- invoke a new Eclipse process and launch the build from the common.releng folder --> + <property name="relengCommonBuilderDir" value="${workspaceDir}/org.eclipse.dash.common.releng" /> + <ant antfile="${relengCommonBuilderDir}/buildAll.xml" target="runEclipse" dir="${relengCommonBuilderDir}" /> + </target> +</project> diff --git a/archive/releng/buildExtra.xml b/archive/releng/buildExtra.xml new file mode 100644 index 000000000..aabe71372 --- /dev/null +++ b/archive/releng/buildExtra.xml @@ -0,0 +1,144 @@ +<project default="run" name="Project's .releng buildExtra.xml"> + + <target name="init"> + </target> + + <target name="run"> + <!-- TODO: write code that's hooked into o.e.d.commonbuilder.releng's build.xml to do extra configs (eg., for inserting 3rd party libs into plugins) + --> + </target> + + <target name="getDependencies"> + <echo message="getDependencies!!!" /> + </target> + + <target name="preFetch"> + <echo message="[[[Not unzipping LPG]]]" /> + <!--unzip dest="${buildDirectory}/LPG" src="${downloadsDir}/${tools.orbit.file}"> + <patternset> + <include name="**/net.sourceforge.lpg.lpgjavaruntime_${LPGRuntimeVersion}*.jar"/> + <include name="**/net.sourceforge.lpg.lpgjavaruntime.source_${LPGRuntimeVersion}*.jar"/> + </patternset> + </unzip--> + <!-- Here is where we fetch all of the example plugins from CVS + We don't need them to be packaged into the Master zip, but rather + they are needed so that they can be zipped up into the examples + plugin as part of the build for that plugin. See the postProcess + target below for the other part of this process.--> + <ant target="fetchElement" antfile="${eclipse.pdebuild.scripts}/genericTargets.xml"> + <property name="type" value="plugin"/> + <property name="id" value="org.eclipse.qvt.declarative.examples.qvtcore.empty"/> + </ant> + <ant target="fetchElement" antfile="${eclipse.pdebuild.scripts}/genericTargets.xml"> + <property name="type" value="plugin"/> + <property name="id" value="org.eclipse.qvt.declarative.examples.qvtrelation.empty"/> + </ant> + <ant target="fetchElement" antfile="${eclipse.pdebuild.scripts}/genericTargets.xml"> + <property name="type" value="plugin"/> + <property name="id" value="org.eclipse.qvt.declarative.examples.qvtrelation.modelmorf"/> + </ant> + <ant target="fetchElement" antfile="${eclipse.pdebuild.scripts}/genericTargets.xml"> + <property name="type" value="plugin"/> + <property name="id" value="org.eclipse.qvt.declarative.examples.qvtrelation.reltocore"/> + </ant> + </target> + + <target name="postFetch"> + <echo message="postFetch!!!" /> + </target> + <target name="preGenerate"> + <echo message="preGenerate!!!" /> + </target> + <target name="postGenerate"> + <echo message="postGenerate!!!" /> + </target> + <target name="preAssemble"> + <echo message="preAssemble!!!" /> + </target> + <target name="postAssemble"> + <echo message="[[[Not adding the LPG bundles into Master zip]]]" /> + <!--zip destfile="${buildDirectory}/${buildLabel}/${masterZip}" update="true"> + <zipfileset dir="${buildDirectory}/LPG" + includes="**/net.sourceforge.lpg.lpgjavaruntime*_${LPGRuntimeVersion}.*.jar" + /> + </zip--> + </target> + <target name="prePackage"> + <echo message="prePackage!!!" /> + </target> + <target name="postPackage"> + <echo message="postPackage!!!" /> + </target> + <target name="preProcess"> + <echo message="preProcess!!!" /> + </target> + <target name="postProcess"> + <echo message="postProcess!!!" /> + <!-- We call the special ant task in the example plugin in order to + zip up all of the actual examples plugins as zips contained in this + plugin. --> + <ant dir="${buildDirectory}/plugins/org.eclipse.qvt.declarative.examples" antfile="${buildDirectory}/plugins/org.eclipse.qvt.declarative.examples/buildZips.xml"/> + </target> + <target name="postBuild"> + <echo message="postBuild!!!" /> + </target> + + <target name="extraPackaging"> + <!-- Add the LPG bundles into SDK zip> + <zip destfile="${buildDirectory}/${buildLabel}/${SDKZip}" update="true"> + <zipfileset dir="${buildDirectory}/LPG" + includes="**/net.sourceforge.lpg.lpgjavaruntime*_${LPGRuntimeVersion}.*.jar" + /> + <zipfileset dir="${buildDirectory}" + includes="epl-v10.html, notice.html" prefix="eclipse" + /> + </zip--> + + <!-- build runtime from SDK --> + <zip destfile="${buildDirectory}/${buildLabel}/${zipPrefix}-runtime${incubation}-${buildAlias}.zip" update="true"> + <zipfileset src="${buildDirectory}/${buildLabel}/${SDKZip}" + dirmode="775" + filemode="664" + excludes="**/${domainNamespace}.*.examples*, **/${domainNamespace}.*.examples*/**, **/${domainNamespace}.*.samples*, **/${domainNamespace}.*.samples*/**, **/${domainNamespace}.*.sdk*, **/${domainNamespace}.*.sdk*/**, **/${domainNamespace}.*.all*, **/${domainNamespace}.*.all*/**, **/${domainNamespace}.*.doc*, **/${domainNamespace}.*.doc*/**, **/${domainNamespace}.*.source*, **/${domainNamespace}.*.source*/**, **/*src.zip" + > + <include name="**/${domainNamespace}.qvt*/" /> + <include name="**/${domainNamespace}.qvt*/**" /> + <include name="**/net.sourceforge.lpg.lpgjavaruntime_${LPGRuntimeVersion}*" /> + <include name="**/eclipse/epl-v10.html" /> + <include name="**/eclipse/notice.html" /> + </zipfileset> + </zip> + + <!-- standalone: extract the jars we need into ./lib/, then the readme into ./, then zip the whole thing and clean up --> + <property name="allSDKZipUnpackTemp" value="${buildDirectory}/allSDKZipUnpackTemp" /> + <mkdir dir="${allSDKZipUnpackTemp}/lib" /> + <copy todir="${allSDKZipUnpackTemp}/lib" preservelastmodified="true"> + <zipfileset src="${buildDirectory}/${buildLabel}/${SDKZip}"> + <patternset> + <include name="**/plugins/org.eclipse.qvtd_*.jar" /> + <!--include name="**/plugins/org.eclipse.ocl.uml_*.jar" /> + <include name="**/plugins/org.eclipse.ocl_*.jar" /> + <include name="**/plugins/net.sourceforge.lpg.lpgjavaruntime_*.jar" /--> + </patternset> + </zipfileset> + <mapper type="flatten" /> + </copy> + <copy todir="${allSDKZipUnpackTemp}" preservelastmodified="true"> + <zipfileset src="${buildDirectory}/${buildLabel}/${SDKZip}"> + <patternset> + <include name="**/eclipse/epl-v10.html" /> + <include name="**/eclipse/notice.html" /> + </patternset> + </zipfileset> + <fileset dir="${relengBuilderDir}/builder/extras"> + <include name="readme_standalone.html" /> + </fileset> + <mapper type="flatten" /> + </copy> + <zip destfile="${buildDirectory}/${buildLabel}/${zipPrefix}-standalone${incubation}-${buildAlias}.zip" update="true"> + <fileset dir="${allSDKZipUnpackTemp}" /> + </zip> + <delete dir="${allSDKZipUnpackTemp}" /> + + </target> +</project>
\ No newline at end of file diff --git a/archive/releng/cronjobs b/archive/releng/cronjobs new file mode 100644 index 000000000..0fe7b4524 --- /dev/null +++ b/archive/releng/cronjobs @@ -0,0 +1,11 @@ +# daily N builds +40 15 * * * /opt/public/common/apache-ant-1.7.1/bin/ant -f + /opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-nightly/workspace/build/org.eclipse.qvtd.releng/promote.xml + -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-nightly/workspace/build/org.eclipse.qvtd.releng/promote-N.properties + 2>/dev/null 1> ~/promo_logs/cbi-m2m-qvtd-0.8-nightly-promo.txt + +# weekly I build +00 16 * * 2 /opt/public/common/apache-ant-1.7.1/bin/ant -f + /opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-integration/workspace/build/org.eclipse.qvtd.releng/promote.xml + -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-integration/workspace/build/org.eclipse.qvtd.releng/promote-I.properties + 2>/dev/null 1> ~/promo_logs/cbi-m2m-qvtd-0.8-integration-promo.txt diff --git a/archive/releng/hudson/run.sh b/archive/releng/hudson/run.sh new file mode 100644 index 000000000..35094445a --- /dev/null +++ b/archive/releng/hudson/run.sh @@ -0,0 +1,98 @@ +#!/bin/bash + +# This script runs as https://build.eclipse.org/hudson/job/cbi-*/configure +# and is archived in http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.dash/athena/org.eclipse.dash.commonbuilder/org.eclipse.dash.commonbuilder.releng/hudson/?root=Technology_Project +# Build runs under ${WORKSPACE} == /opt/users/hudsonbuild/.hudson/jobs/cbi-*/workspace + +echo "[`date +%Y/%m/%d\ %H:%M`] Hudson job ${JOBNAME} build #${BUILD_NUMBER} (${BUILD_ID}) started." + +############################################################################################## + +# BEGIN CONFIGURATION + +buildTimestamp="`date +%Y%m%d%H%M`" +projectid="mdt.qvtd" +version="0.8.0" + +# leave blank to use assumed values (which may be wrong!) +projRelengRoot='-projRelengRoot :pserver:anonymous@dev.eclipse.org:/cvsroot/modeling' +projRelengPath='-projRelengPath org.eclipse.mdt/org.eclipse.qvt.declarative/releng' + +# where should we look for pre-checked out project sources for org.eclipse.dash.common.releng and org.eclipse.releng.basebuilder ? +cvsProjectBaseDir=/opt/public/cbi/build # build.eclipse.org +if [[ ! -d $cvsProjectBaseDir ]]; then cvsProjectBaseDir=/home/builduser/workspace; fi # local build? +if [[ ! -d $cvsProjectBaseDir ]]; then + echo "ERROR: cannot find where org.eclipse.dash.common.releng and org.eclipse.releng.basebuilder are on disk. Must exit!" + exit 1; +fi + +# need a place to store existing 3rd party jars, eg., ant-contrib.jar (if not in /usr/share/java/) +thirdPartyJarsDir=/opt/public/cbi/build/3rdPartyJars # build.eclipse.org +if [[ ! -d $thirdPartyJarsDir ]]; then thirdPartyJarsDir=/tmp/build/3rdPartyJars; fi # local build +if [[ ! -d $thirdPartyJarsDir ]]; then mkdir $thirdPartyJarsDir; fi + +# DONE CONFIGURATION + +############################################################################################## + +# exposed as a Hudson build parameter for convenience +if [[ $BUILDTYPE ]]; then + buildType="$BUILDTYPE" +else + buildType="N" +fi + +# pass in additional flags like -buildAlias=1.0.0RC2 using the $EXTRAFLAGS Hudson parameter +# buildAlias will rename zips from foo-SDK-N200901011234.zip to foo-SDK-1.0.0RC2.zip + +############################################################################################## + +# define where to do all the work; start with a fresh folder each time +writableBuildRoot="${WORKSPACE}/build" +if [[ -d ${writableBuildRoot} ]]; then rm -fr ${writableBuildRoot}; fi + +# define required folders +downloadsDir="${writableBuildRoot}/downloads" +signingDir="${writableBuildRoot}/signing" + +# long form (default if omitted) +# buildDir="${writableBuildRoot}/${projectid//.//}/downloads/drops/${version}/${buildType}${buildTimestamp}" +# short form (non-default) +buildDir="${writableBuildRoot}/${buildType}${buildTimestamp}" + +# create required folders & files (as symlinks is possible) +mkdir -p ${downloadsDir} ${signingDir} ${buildDir} + +# create .cvspass file to shut up unnecessary warnings +touch ${writableBuildRoot}/.cvspass + +#define symlinked required folders +relengBaseBuilderDir="${writableBuildRoot}/org.eclipse.releng.basebuilder" +relengCommonBuilderDir="${writableBuildRoot}/org.eclipse.dash.common.releng" +# symlink basebuilder and common.releng; alternatively, if you omit this, they'll be checked out in start.sh +echo ln -s ${cvsProjectBaseDir}/org.eclipse.releng.basebuilder ${writableBuildRoot}/ +ln -s ${cvsProjectBaseDir}/org.eclipse.releng.basebuilder ${writableBuildRoot}/ +echo ln -s ${cvsProjectBaseDir}/org.eclipse.dash.common.releng ${writableBuildRoot}/ +ln -s ${cvsProjectBaseDir}/org.eclipse.dash.common.releng ${writableBuildRoot}/ + +#symlink local copy of org.eclipse.qvt.declarative/releng instead of fetching from CVS (so tweaks for local Hudson are preserved) +if [[ -d ${cvsProjectBaseDir}/org.eclipse.qvt.declarative/releng ]]; then + echo ln -s ${cvsProjectBaseDir}/org.eclipse.qvt.declarative/releng ${writableBuildRoot}/ + ln -s ${cvsProjectBaseDir}/org.eclipse.qvt.declarative/releng ${writableBuildRoot}/ +fi + +# symlink 3rdPartyJars (reuse existing content on build.eclipse.org for ant-contrib.jar, etc.) +echo ln -s ${thirdPartyJarsDir} ${writableBuildRoot}/ +ln -s ${thirdPartyJarsDir} ${writableBuildRoot}/ +thirdPartyJarsDir="${writableBuildRoot}/3rdPartyJars" + +# run a build - may have to pass in "-javaHome /usr/lib/jvm/java" or similar here if default JVM not found +cd ${writableBuildRoot}/org.eclipse.dash.common.releng/tools/scripts +./start.sh -projectid ${projectid} -version ${version} -buildType ${buildType} -buildTimestamp ${buildTimestamp} \ + -writableBuildRoot ${writableBuildRoot} -thirdPartyJarsDir ${thirdPartyJarsDir} -downloadsDir ${downloadsDir} -buildDir ${buildDir} \ + ${projRelengRoot} ${projRelengPath} ${EXTRAFLAGS} 2>&1 + +# remove file so workspace navigation is one click simpler +rm -f ${writableBuildRoot}/.cvspass + +echo "[`date +%Y/%m/%d\ %H:%M`] Hudson job ${JOBNAME} build #${BUILD_NUMBER} (${BUILD_ID}) done." diff --git a/archive/releng/maps/qvtd.map b/archive/releng/maps/qvtd.map new file mode 100644 index 000000000..d8f5d1349 --- /dev/null +++ b/archive/releng/maps/qvtd.map @@ -0,0 +1,92 @@ +!*** M2M QVT Declarative (QVTd) map ******************************************** + +!*** Special entries from eclipse + +plugin@org.eclipse.test=v20091002,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse, +fragment@org.eclipse.ant.optional.junit=R3_5_1,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse, + +!*** QVT features *************************************************************************** +feature@org.eclipse.qvt.declarative=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative-feature +feature@org.eclipse.qvt.declarative.editor.qvtrelation=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.editor.qvtrelation-feature +feature@org.eclipse.qvt.declarative.editor.qvtcore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.editor.qvtcore-feature +feature@org.eclipse.qvt.declarative.editor.qvtbase=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.editor.qvtbase-feature +feature@org.eclipse.qvt.declarative.editor=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.editor-feature +feature@org.eclipse.qvt.declarative.ecore.qvtbase=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.ecore.qvtbase-feature +feature@org.eclipse.qvt.declarative.ecore.qvtcore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.ecore.qvtcore-feature +feature@org.eclipse.qvt.declarative.ecore.qvtrelation=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.ecore.qvtrelation-feature + +!*** IMP plug-ins *************************************************************************** +!*** plugin@org.eclipse.imp.runtime=SVN,trunk,svn://dev.eclipse.org/svnroot/technology/org.eclipse.imp,,org.eclipse.imp.runtime +!*** -- works as HEAD plugin@org.eclipse.imp.runtime=SVN,trunk,svn://dev.eclipse.org/svnroot/technology/org.eclipse.imp,,org.eclipse.imp.runtime +!*** -- fetches ok but "Invalid manifest header Bundle-Version: "0.1.104.0.1.104.v201003141548" : invalid format" plugin@org.eclipse.imp.runtime=SVN,tags/features/org.eclipse.imp.runtime/0.1.104.v201003141548,svn://dev.eclipse.org/svnroot/technology/org.eclipse.imp,,org.eclipse.imp.runtime +!*** -- fetch fails plugin@org.eclipse.imp.runtime=v201003141548,tags/features/org.eclipse.imp.runtime/0.1.104,svn://dev.eclipse.org/svnroot/technology/org.eclipse.imp,,org.eclipse.imp.runtime +!*** -- fetch fails plugin@org.eclipse.imp.runtime=v201003141548,tags/features/org.eclipse.imp.runtime/0.1.104.v201003141548,svn://dev.eclipse.org/svnroot/technology/org.eclipse.imp,,org.eclipse.imp.runtime +plugin@org.eclipse.imp.runtime=SVN,0.1.106.v201004212015,svn://dev.eclipse.org/svnroot/technology/org.eclipse.imp/tags/features/org.eclipse.imp.runtime,,org.eclipse.imp.runtime + +!*** QVT plug-ins *************************************************************************** +plugin@org.eclipse.qvt=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt +plugin@org.eclipse.qvt.declarative.ecore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore +plugin@org.eclipse.qvt.declarative.ecore.qvtbase=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtbase +plugin@org.eclipse.qvt.declarative.ecore.qvtbase.edit=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtbase.edit +plugin@org.eclipse.qvt.declarative.ecore.qvtbase.editor=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtbase.editor +plugin@org.eclipse.qvt.declarative.ecore.qvtcore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtcore +plugin@org.eclipse.qvt.declarative.ecore.qvtcore.edit=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtcore.edit +plugin@org.eclipse.qvt.declarative.ecore.qvtcore.editor=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtcore.editor +plugin@org.eclipse.qvt.declarative.ecore.qvtrelation=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtrelation +plugin@org.eclipse.qvt.declarative.ecore.qvtrelation.edit=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtrelation.edit +plugin@org.eclipse.qvt.declarative.ecore.qvtrelation.editor=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvtrelation.editor +plugin@org.eclipse.qvt.declarative.ecore.qvttemplate=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvttemplate +plugin@org.eclipse.qvt.declarative.ecore.qvttemplate.edit=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvttemplate.edit +plugin@org.eclipse.qvt.declarative.ecore.qvttemplate.editor=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.ecore.qvttemplate.editor +plugin@org.eclipse.qvt.declarative.emof.emof=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.emof.emof +plugin@org.eclipse.qvt.declarative.emof.qvtbase=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.emof.qvtbase +plugin@org.eclipse.qvt.declarative.emof.qvtcore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.emof.qvtcore +plugin@org.eclipse.qvt.declarative.emof.qvttemplate=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.emof.qvttemplate +plugin@org.eclipse.qvt.declarative.emof.qvtrelation=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.emof.qvtrelation +plugin@org.eclipse.qvt.declarative.emof.essentialocl=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.emof.essentialocl +plugin@org.eclipse.qvt.declarative.editor.model=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.model +plugin@org.eclipse.qvt.declarative.editor.model.edit=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.model.edit +plugin@org.eclipse.qvt.declarative.editor.model.editor=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.model.editor +plugin@org.eclipse.qvt.declarative.editor.ui=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui +plugin@org.eclipse.qvt.declarative.editor.ocl.ui=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ocl.ui +plugin@org.eclipse.qvt.declarative.editor.qvtcore.ui=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.qvtcore.ui +plugin@org.eclipse.qvt.declarative.editor.qvtrelation.ui=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.qvtrelation.ui +plugin@org.eclipse.qvt.declarative.parser=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser +plugin@org.eclipse.qvt.declarative.parser.ocl=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.ocl +plugin@org.eclipse.qvt.declarative.parser.qvtcore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.qvtcore +plugin@org.eclipse.qvt.declarative.parser.qvtrelation=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.qvtrelation +plugin@org.eclipse.qvt.declarative.parser.ui=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.ui +plugin@org.eclipse.qvt.declarative.parser.unresolved=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.unresolved + +!*** QVT examples *************************************************************************** +feature@org.eclipse.qvt.declarative.examples=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.examples-feature +plugin@org.eclipse.qvt.declarative.examples=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.examples + +!*** QVT tests ****************************************************************************** +feature@org.eclipse.qvt.declarative.test=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.test-feature +plugin@org.eclipse.qvt.declarative.test.all=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.all +plugin@org.eclipse.qvt.declarative.test.emof=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.emof +plugin@org.eclipse.qvt.declarative.test.emof.all=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.emof.all +plugin@org.eclipse.qvt.declarative.test.emof.emof=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.emof.emof +plugin@org.eclipse.qvt.declarative.test.emof.essentialocl=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.emof.essentialocl +plugin@org.eclipse.qvt.declarative.test.emof.qvtbase=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.emof.qvtbase +plugin@org.eclipse.qvt.declarative.test.emof.qvtcore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.emof.qvtcore +plugin@org.eclipse.qvt.declarative.test.emof.qvtrelation=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.emof.qvtrelation +plugin@org.eclipse.qvt.declarative.test.emof.qvttemplate=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.emof.qvttemplate +plugin@org.eclipse.qvt.declarative.test.testqvtbase=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.testqvtbase +plugin@org.eclipse.qvt.declarative.test.parser=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.parser +plugin@org.eclipse.qvt.declarative.test.parser.qvtcore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.parser.qvtcore +plugin@org.eclipse.qvt.declarative.test.parser.qvtrelation=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.parser.qvtrelation +plugin@org.eclipse.qvt.declarative.test.editor=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.editor +plugin@org.eclipse.qvt.declarative.test.editor.qvtcore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.editor.qvtcore +plugin@org.eclipse.qvt.declarative.test.editor.qvtrelation=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tests/org.eclipse.qvt.declarative.test.editor.qvtrelation + +!*** QVT Docs *************************************************************************** + + +!*** QVTd Examples plugins +plugin@org.eclipse.qvt.declarative.examples.qvtcore.empty=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/examples/org.eclipse.qvt.declarative.examples.qvtcore.empty +!*** plugin@org.eclipse.qvt.declarative.examples.qvtcore.uml2rdbms=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/examples/org.eclipse.qvt.declarative.examples.qvtcore.uml2rdbms +plugin@org.eclipse.qvt.declarative.examples.qvtrelation.empty=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/examples/org.eclipse.qvt.declarative.examples.qvtrelation.empty +plugin@org.eclipse.qvt.declarative.examples.qvtrelation.modelmorf=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/examples/org.eclipse.qvt.declarative.examples.qvtrelation.modelmorf +plugin@org.eclipse.qvt.declarative.examples.qvtrelation.reltocore=v201007100932,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/examples/org.eclipse.qvt.declarative.examples.qvtrelation.reltocore diff --git a/archive/releng/promote-I.properties b/archive/releng/promote-I.properties new file mode 100644 index 000000000..fa82f2520 --- /dev/null +++ b/archive/releng/promote-I.properties @@ -0,0 +1,19 @@ +#cronjob: /opt/public/common/apache-ant-1.7.1/bin/ant -f /opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-integration/workspace/build/org.eclipse.qvtd.releng/promote.xml -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-integration/workspace/build/org.eclipse.qvtd.releng/promote-N.properties 2>~/promo_logs/cbi-m2m-qvtd-0.8-integration-promo-error.txt 1> ~/promo_logs/cbi-m2m-qvtd-0.8-integration-promo.txt + +# source dir +sourceZipsDir=/opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-integration/lastSuccessful/archive/build + +# target dir +targetZipsDir=/home/data/httpd/download.eclipse.org/modeling/m2m/qvtd/downloads/drops/0.8.0 + +# group owner of new files +targetGroup=m2madmin + +# type(s) to copy (N, I, M, S, R; default to all) +buildTypes=I + +# synch method method (add or replace; add = keep adding new builds; replace = keep 1 build per branch) +synchMethod=replace + +# if set, update zip will be unpacked into destination dir and use synchMethod above to add or replace contents +targetUpdateDir=/home/data/httpd/download.eclipse.org/modeling/m2m/qvtd/0_8/updates/integration/ diff --git a/archive/releng/promote-N.properties b/archive/releng/promote-N.properties new file mode 100644 index 000000000..5183c235f --- /dev/null +++ b/archive/releng/promote-N.properties @@ -0,0 +1,19 @@ +#cronjob: /opt/public/common/apache-ant-1.7.1/bin/ant -f /opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-nightly/workspace/build/org.eclipse.qvtd.releng/promote.xml -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-nightly/workspace/build/org.eclipse.qvtd.releng/promote-N.properties 2>~/promo_logs/cbi-m2m-qvtd-0.8-nightly-promo-error.txt 1> ~/promo_logs/cbi-m2m-qvtd-0.8-nightly-promo.txt + +# source dir +sourceZipsDir=/opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-nightly/lastSuccessful/archive/build + +# target dir +targetZipsDir=/home/data/httpd/download.eclipse.org/modeling/m2m/qvtd/downloads/drops/0.8.0 + +# group owner of new files +targetGroup=m2madmin + +# type(s) to copy (N, I, M, S, R; default to all) +buildTypes=N + +# synch method method (add or replace; add = keep adding new builds; replace = keep 1 build per branch) +synchMethod=add + +# if set, update zip will be unpacked into destination dir and use synchMethod above to add or replace contents +targetUpdateDir=/home/data/httpd/download.eclipse.org/modeling/m2m/qvtd/0_8/updates/nightly/ diff --git a/archive/releng/promote.properties b/archive/releng/promote.properties new file mode 100644 index 000000000..e4996beed --- /dev/null +++ b/archive/releng/promote.properties @@ -0,0 +1,19 @@ +#cronjob: /opt/public/common/apache-ant-1.7.1/bin/ant -f /opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-nightly/workspace/build/org.eclipse.qvtd.releng/promote.xml -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-nightly/workspace/build/org.eclipse.qvtd.releng/promote.properties 2>~/promo_logs/cbi-m2m-qvtd-0.8-nightly-promo-error.txt 1> ~/promo_logs/cbi-m2m-qvtd-0.8-nightly-promo.txt + +# source dir +sourceZipsDir=/opt/users/hudsonbuild/.hudson/jobs/cbi-m2m-qvtd-0.8-nightly/lastSuccessful/archive/build + +# target dir +targetZipsDir=/home/data/httpd/download.eclipse.org/modeling/m2m/qvtd/downloads/drops/0.8.0 + +# group owner of new files +targetGroup=m2madmin + +# type(s) to copy (N, I, M, S, R; default to all) +buildTypes=N + +# synch method method (add or replace; add = keep adding new builds; replace = keep 1 build per branch) +synchMethod=add + +# if set, update zip will be unpacked into destination dir and use synchMethod above to add or replace contents +targetUpdateDir=/home/data/httpd/download.eclipse.org/modeling/m2m/qvtd/0_8/updates/nightly/ diff --git a/archive/releng/promote.xml b/archive/releng/promote.xml new file mode 100644 index 000000000..187484ec7 --- /dev/null +++ b/archive/releng/promote.xml @@ -0,0 +1,44 @@ +<project default="run" name="org.eclipse.qvt.declarative/releng/promote.xml - Promote a build from build server to production server"> + <target name="run"> + <!-- + To use this script, you must have configured a promote.properties file. + + Then, run commandline: + + ant -f promote.xml + + If you need to reuse this script with multiple properties files (eg., from + multiple Hudson builds across multiple branches), use the commandline + flag -Dpromote.properties: + + ant -f promote.xml -Dpromote.properties=promote.properties.R2_0_branch + --> + <property name="promote.properties" value="promote.properties" /> + <property file="${promote.properties}"/> + + <!-- load build properties --> + <property file="build.properties" /> + + <!-- calculate workspaceDir as parent of this folder, the project's .releng folder (relengBuilderDir) --> + <property name="relengBuilderDir" value="${basedir}" /> + <dirname file="${relengBuilderDir}" property="workspaceDir" /> + + <!-- + can build in /tmp, eg., in /tmp/build, or in workspace, eg., + ${relengBuilderDir}/build + --> + <property name="writableBuildRoot" value="/tmp/build" /> + + <!-- + can be simple path, eg., + ${writableBuildRoot}/${buildType}${buildTimestamp} or longer, eg., + ${writableBuildRoot}/${topprojectName}/${projectName}/downloads/drops/${version}/${buildType}${buildTimestamp} or + ${writableBuildRoot}/${topprojectName}/${projectName}/${subprojectName}/downloads/drops/${version}/${buildType}${buildTimestamp} + --> + <property name="buildDir" value="${writableBuildRoot}/${buildType}${buildTimestamp}-m2m-qvtd" /> + + <!-- invoke common promotion script --> + <property name="relengCommonBuilderDir" value="${workspaceDir}/org.eclipse.dash.common.releng" /> + <ant antfile="${relengCommonBuilderDir}/promote.xml" dir="${relengCommonBuilderDir}" /> + </target> +</project>
\ No newline at end of file diff --git a/archive/releng/psfs/features.psf b/archive/releng/psfs/features.psf new file mode 100644 index 000000000..aab817d29 --- /dev/null +++ b/archive/releng/psfs/features.psf @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<psf version="2.0"> + <provider id="org.eclipse.team.cvs.core.cvsnature"> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative-feature,org.eclipse.qvt.declarative-feature,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.ecore.qvtbase-feature,org.eclipse.qvt.declarative.ecore.qvtbase-feature"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.ecore.qvtcore-feature,org.eclipse.qvt.declarative.ecore.qvtcore-feature"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.ecore.qvtrelation-feature,org.eclipse.qvt.declarative.ecore.qvtrelation-feature"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.editor-feature,org.eclipse.qvt.declarative.editor-feature"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.editor.qvtbase-feature,org.eclipse.qvt.declarative.editor.qvtbase-feature"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.editor.qvtcore-feature,org.eclipse.qvt.declarative.editor.qvtcore-feature"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.editor.qvtrelation-feature,org.eclipse.qvt.declarative.editor.qvtrelation-feature"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.examples-feature,org.eclipse.qvt.declarative.examples-feature"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/features/org.eclipse.qvt.declarative.test-feature,org.eclipse.qvt.declarative.test-feature"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/releng,org.eclipse.qvtd.releng"/> + + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/org.eclipse,,www/modeling/m2m/qvtd,org.eclipse.qvtd.www"/> + </provider> +</psf> diff --git a/archive/releng/psfs/tools.psf b/archive/releng/psfs/tools.psf new file mode 100644 index 000000000..d35a9356a --- /dev/null +++ b/archive/releng/psfs/tools.psf @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<psf version="2.0"> + <provider id="org.eclipse.team.cvs.core.cvsnature"> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.emf/org.eclipse.emf/plugins/org.eclipse.emf.ant,org.eclipse.emf.ant,"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.emf/org.eclipse.emf/plugins/org.eclipse.emf.importer.rose,org.eclipse.emf.importer.rose"/> + <project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.m2m/org.eclipse.qvt.declarative/tools/org.eclipse.qvt.declarative.importer.roseuml,org.eclipse.qvt.declarative.importer.roseuml"/> + </provider> +</psf> diff --git a/archive/releng/testing.properties b/archive/releng/testing.properties new file mode 100644 index 000000000..98831c2af --- /dev/null +++ b/archive/releng/testing.properties @@ -0,0 +1,10 @@ +#csv list of test plugins to run +testPluginsToRun=org.eclipse.qvt.declarative.test.all +#,org.eclipse.qvt.declarative.test.modelregistry + +#map name of test plugin to testsuite class to run using ".suite=" +org.eclipse.qvt.declarative.test.all.suite=org.eclipse.qvt.declarative.test.all.AllQVTDeclarativeTests +#org.eclipse.qvt.declarative.test.modelregistry.suite=org.eclipse.qvt.declarative.test.modelregistry.AllRegistryTests + +extraVMargs=-Dorg.eclipse.swt.browser.XULRunnerPath=/shared/common/mozilla-xulrunner181-1.8.1.4-30.ppc + |