You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Alf is an action language for UML developed in response to the OMG <em>Concrete
5
5
Syntax for a UML Action Language</em> Request for Proposals. The Alf specification
@@ -27,8 +27,8 @@ The latest version of the implementation is available at http://alf.modeldriven.
27
27
28
28
## Licensing
29
29
30
-
Data Access Technology, Inc. is copyright owner of the source code for this implementation. For licensing terms, see
31
-
the file [`LICENSING.txt`](https://github.com/ModelDriven/Alf-Reference-Implementation/blob/master/dist/LICENSING.txt).
30
+
Model Driven Solutions, Inc., (formerly Data Access Technology, Inc.) is copyright owner of the source code for this implementation.
31
+
For licensing terms, see the file [`LICENSING.txt`](https://github.com/ModelDriven/Alf-Reference-Implementation/blob/master/dist/LICENSING.txt).
32
32
33
33
## Installation
34
34
@@ -41,9 +41,14 @@ The installation directory includes Unix (BASH) shell scripts and DOS batch file
41
41
By default, the `Libraries` subdirectory is expected to be in the same directory as the scripts.
42
42
If you move it, set the environment variable `ALF_LIB` to its path.
43
43
44
+
## Further Information
45
+
46
+
The following sections describe the project structure and build steps for the implementation. For further information on using it,
47
+
see the [wiki](https://github.com/ModelDriven/Alf-Reference-Implementation/wiki/Home).
48
+
44
49
## Projects
45
50
46
-
The implementation source is organized into four [Eclipse](http://www.eclipse.org) projects. Eclipse 4.6 or later is required.
51
+
The base implementation source is organized into the following [Eclipse](http://www.eclipse.org) projects. The build is currently tested on Eclipse 2020-06 (4.16).
47
52
48
53
*`org.modeldriven.alf` - This is the base project, including the
49
54
Alf parser, static semantic checking and generic mapping to fUML.
@@ -64,10 +69,88 @@ metamodel implementation (v5.2.0 or later). It depends on Eclipse plugins and mu
64
69
*`org.modeldriven.alf.eclipse.moka` - This project extends the
65
70
`org.modeldriven.alf.eclipse` project to allow compiled Alf text to be executed
66
71
using the fUML execution engine from the [Moka framework](http://wiki.eclipse.org/Papyrus/UserGuide/ModelExecution)
67
-
for model execution in the [Eclipse Papyrus](http://www.eclipse.org/papyrus) modeling tool (v3.1.0 or later).
72
+
for model execution in the [Eclipse Papyrus](http://www.eclipse.org/papyrus) modeling tool (specifically v3.1.0).
68
73
It depends on Eclipse plugins and must be built in an Eclipse environment. (Note: This project was called
69
74
`org.modeldriven.alf.eclipse.papyrus` in previous versions of the reference implementation.)
70
75
71
-
## Further Information
76
+
*`org.modeldriven.alf.tests` - This project provides automated tests.
77
+
78
+
## Building
79
+
80
+
### Maven project structure
81
+
82
+
The project structure under Maven allows building the regular Java modules and the Eclipse-based modules (using [Tycho](https://www.eclipse.org/tycho/)).
83
+
84
+
#### Master module build
85
+
86
+
*`./master/pom.xml` - a module that provides standard configurations to be shared by all modules, including the root module.
87
+
88
+
#### Regular Java build
89
+
90
+
*`./pom.xml` - the parent module for the regular Java modules
91
+
*`./org.modeldriven.alf` - see [Projects](#Projects) above.
92
+
*`./org.modeldriven.alf.fuml.impl` - see [Projects](#Projects) above.
93
+
*`./org.modeldriven.alf.tests` - see [Projects](#Projects) above.
94
+
*`./org.modeldriven.alf.bundle` - produces a OSGi-bundle from org.modeldriven.alf
95
+
*`./org.modeldriven.alf.fuml.impl.bundle` - produces a OSGi-bundle from org.modeldriven.alf.fuml.impl
96
+
97
+
#### Tycho build
98
+
99
+
*`./tycho-pom.xml` - a convenience module that can be used for performing the Tycho (OSGi) aware part of the build. Equivalent to building `./tycho-parent/pom.xml`
100
+
*`./tycho-parent/pom.xml` - the parent module for the Tycho/Eclipse modules
101
+
*`./org.modeldriven.alf.eclipse` - see [Projects](#Projects) above.
102
+
*`./org.modeldriven.alf.eclipse.moka` - see [Projects](#Projects) above.
103
+
104
+
### Steps
105
+
106
+
1. Master module build (required only once):
107
+
108
+
```
109
+
mvn clean install -f master
110
+
```
111
+
112
+
2. To perform the regular Java build, execute from the root directory:
113
+
114
+
```
115
+
mvn clean install
116
+
```
117
+
118
+
3. To perform the Tycho build, execute from the root directory:
119
+
120
+
```
121
+
mvn clean install -f tycho-pom.xml
122
+
```
123
+
124
+
## Importing into Eclipse
125
+
126
+
### Prerequisites
127
+
128
+
1. Eclipse JDT - Java development tools
129
+
2. Eclipse PDE - Plug-in development environment
130
+
3. Eclipse M2E - Maven Integration in Eclipse
131
+
132
+
By downloading the Eclipse SDK, you should have all those components.
133
+
134
+
### Importing as Eclipse projects
135
+
136
+
That is the simplest way to import the codebase into Eclipse.
137
+
138
+
1. Import the root directory location using the "Existing Projects into Workspace" option, making sure to select the "Search for nested projects" option.
139
+
2. Configure the [target platform](https://help.eclipse.org/latest/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Fpreference_pages%2Ftarget_platform.htm)
140
+
preferences to use the `alf-ri.target` definition you just imported
141
+
3. You may be asked to install M2E extensions to support Tycho projects - this is recommended.
142
+
143
+
144
+
### Importing as Maven modules
145
+
146
+
Alternately, you can import the code as Maven modules, which is recommended to obtain a configuration that is consistent with how the Maven build operates on the codebase.
147
+
148
+
1. Import the repository root directory and all its children artifacts as "Existing Maven projects" (note that will *not* include the `alf.eclipse` and `alf.eclipse.moka projects`,
149
+
as they are *not* modules for the base Maven build).
150
+
**Note:** If you see a build problem with the message "*Duplicate bundle executions found. Please remove any explicitly defined bundle executions in your pom.xml.*",
151
+
make any non-content change to the POM file and save it, which should make the error go away.
152
+
2. Import the `tycho-parent` directory and all its children artifacts as "Existing Maven projects".
153
+
3. Configure the [target platform](https://help.eclipse.org/latest/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Fpreference_pages%2Ftarget_platform.htm) preferences
154
+
to use the `alf-ri.target` definition you just imported
155
+
4. You may be asked to install M2E extensions to support Tycho projects - this is recommended.
72
156
73
-
For further information on using the implementation, see the [wiki](https://github.com/ModelDriven/Alf-Reference-Implementation/wiki/Home).
0 commit comments