Skip to content

Commit

Permalink
Merge pull request #1620 from umple/Prep1.30.1
Browse files Browse the repository at this point in the history
Preparing for 1.30.1 release. This includes a new Docker base file. We will create a pre-release shortly to ensure this is working properly
  • Loading branch information
TimLethbridge committed Aug 6, 2020
2 parents 60569f3 + 859ef15 commit 3f8cbd5
Show file tree
Hide file tree
Showing 20 changed files with 397 additions and 60 deletions.
20 changes: 16 additions & 4 deletions build/build.umple.xml
Expand Up @@ -389,11 +389,23 @@

<target name="buildDockerImage">
<exec executable="docker" dir="umpleonline" searchpath="true" failonerror="true">
<arg value="build" />
<arg value="--tag" />
<arg value="umpleonline" />
<arg value="." />
<arg value="build" />
<arg value="-t" />
<arg value="umple/umpleonline-base:local" />
<arg value="-f" />
<arg value="Dockerfile-base" />
<arg value="." />
</exec>

<exec executable="docker" dir="umpleonline" searchpath="true" failonerror="true">
<arg value="build" />
<arg value="-t" />
<arg value="umple/umpleonline:local" />
<arg value="--build-arg" />
<arg value="gitbranch=localtest" />
<arg value="." />
</exec>

</target>

<!-- The Umplificator jar-->
Expand Down
25 changes: 20 additions & 5 deletions build/reference/0301DirectiveTypes.txt
Expand Up @@ -4,28 +4,43 @@ noreferences

@@description
<p>
Directives appear as the 'main' entries in an Umple file.</p>
Directives appear as the 'main' entries in an Umple file. The following are the main types:</p>

<ul>
<li><b><a href="UseStatements.html">Use statements</a></b> result in inclusion of other Umple files to allow for modularization and reuse.</li>

<br />

<li><b>Entity declarations</b> define the top level model or code elements including <a href="ClassDefinition.html">classes</a>, <a href="interfaceDefinition.html">interfaces</a>, <a href="AssociationDefinition.html">associations</a> and <a href="AssociationClassDefinition.html">association classes</a>. Other model or code elements, such as <a href="MethodDefinition.html">methods</a> or <a href="AttributeDefinition.html">attributes</a> must be placed <i>inside</i> these entities.</li>
<li><b>Entity declarations</b> define the top level model or code elements including
<a href="ClassDefinition.html">classes</a>,
<a href="interfaceDefinition.html">interfaces</a>,
<a href="Traits.html">traits</a>,
<a href="AssociationDefinition.html">associations</a>,
<a href="AssociationClassDefinition.html">association classes</a>, and
<a href="EnumerationDefinition.html">enumerations</a>.
Other model or code elements, such as <a href="MethodDefinition.html">methods</a> or <a href="AttributeDefinition.html">attributes</a> must be placed <i>inside</i> these entities. Note that the same entity can be declared more than once to add new internal contents. This is called using a mixin (one mixes together the contents of multiple declarations).</li>

<br />

<li><b><a href="Top-levelAspects.html">Aspects (code injections)</a></b> tell umple to inject certain code before, after or around certain methods of certain classes. These can be used to modify the behaviour of both custom and generated code.</li>

<br />

<li><b><a href="BasicMixsets.html">Mixset directives.</a></b> These are named blocks of Umple code that can be included (optionally) with a <a href="UseStatements.html">use statement</a>. Several of them can have the same name. If there us no use statement for the mixset, that code is ignored. These can be used to build product lines and different software versions.</li>

<br />

<li><b><a href="NamespaceDirectives.html">Namespace directives</a></b> gather entities in logical groups. Within a namespace, entities must have different names. Namespaces affect code generation; for example they correspond to packages in Java.</li>
<br />

<li><b><a href="StrictnessDirective.html">Strictness Directives</a></b> tell the compiler to issue extra warnings or errors in certain situations, or to turn certain errors into warnings.</li>
<li><b><a href="StrictnessDirective.html">Strictness Directives</a></b> tell the compiler to issue extra warnings or errors in certain situations, or to turn certain errors into warnings, or to suppress certain warnings.</li>
<br />

<li><b>Generate directives</b> tell Umple one or more generated outputs to create. You can omit these entirely and specify them on the command line or using UmpleOnline. As a second argument on the generate directive, you can specify a path (directory) where the output should be put. You can also specify --override-all to ensure subsequent directives are ignored.</li>
<li><b>Generate directives</b> tell Umple one or more generated outputs to create (see the grammar below for the list of languages and other outputs that can be generated). You can omit these entirely and specify them on the command line or using UmpleOnline. As a second argument on the generate directive, you can specify a path (directory) where the output should be put. You can also specify --override-all to ensure subsequent directives are ignored.</li>

<br />

<li><b>The tracer directive</b> is under development and tells Umple which tracing tool to use in order to <a href="TracingBasics.html">trace execution of the code</a>.</li>
<li><b>Tracer directives</b> tell Umple which tracing tool to use in order to <a href="TracingBasics.html">trace execution of the code</a>.</li>

</ul>

Expand Down
5 changes: 3 additions & 2 deletions build/reference/0304UseStatements.txt
Expand Up @@ -4,9 +4,10 @@ noreferences

@@description
<p>Use statements allow you to decompose your system by embedding or referencing
other model or program entities (i.e. classes) within your current model.</p>
files containing other model or program entities (i.e. classes) within your current model or to include optional
blocks of code that are specified within <a href="BasicMixsets.html">mixsets</a>.</p>

<p>A model file will only be included once, subsequent "use" commands
<p>A model file or mixset will only be included once, subsequent "use" commands
for the same file will be ignored.</p>

<p>A common technique is to create a 'master' Umple file that does nothing but have a list
Expand Down
16 changes: 14 additions & 2 deletions build/reference/0307Strictness.txt
Expand Up @@ -16,7 +16,19 @@ The first two are &#39;modelOnly&#39; or &#39;noExtraCode&#39;. These are used w
</p>

<p>
The second set of subdirectives are &#39;expect&#39;, &#39;allow&#39; and &#39;disallow&#39;. These are used to control the effect of certain messages. They are followed by a message number. &#39;expect n&#39; declares that message number n <i>should occur</i>; it is an error if the message does not. This is used in testing to create example cases of message n; an error would be triggered if message n does <i>not</i> appear. &#39;allow n&#39; is used in the case of errors, to tell the compiler to not actually &#39;fail&#39;, but to report that error as if it was a warning. This is also used in testing to include cases that give message n, without the compiler reporting that it has failed. &#39;disallow n&#39;, where n is a warning, tells the compiler to treat n as if it was an error, and fail the compilation. <em>Some of the above are still under development.</em>
The second set of subdirectives are &#39;expect&#39;, &#39;allow&#39; and &#39;disallow&#39;. These are used to control the effect of certain messages. They are followed by a message number.

<ul>

<li><b>strictness expect n</b> declares that message number n <i>should occur</i>; it is an error if the message does not. This is used in testing to create example cases of message n; an error would be triggered if message n does <i>not</i> appear.

<li><b>strictness allow n</b> is used in the case of errors, to tell the compiler to not actually &#39;fail&#39;, but to report that error as if it was a warning. In the case of n being a warning, the warning is not emitted. This is also used in testing to include cases that give message n, without the compiler reporting that it has failed.

<li><b>strictness disallow n</b>, where n is a warning, tells the compiler to treat n as if it was an error, and fail the compilation.


</ul>
<em>Some of the above are still under development.</em>
</p>

<p>
Expand All @@ -26,7 +38,7 @@ subdirectives.
</p>

@@syntax
[[strictness]]
[[strictness]] [[strictnessMessage]] [[strictnessDisableAuto]]

@@example
@@source manualexamples/StrictnessDirective1.ump
Expand Down
4 changes: 3 additions & 1 deletion build/reference/0401ClassDefinition.txt
Expand Up @@ -4,14 +4,16 @@ noreferences

@@description
<p>
A class definition defines an object-oriented class available for use as a type in the system you are developing. Objects (chunks of data) are created as <i>instances</i> of the class. A class describes the structure of that data in terms of <a href="AttributeDefinition.html">attributes</a> (simple data like strings and numbers), <a href="AssociationDefinition.html">associations</a> (links to and from other objects), as well as other items described in this manual.
A class definition defines an object-oriented class available for use as a type in the system you are developing. Objects (chunks of data) are created as <i>instances</i> of the class. A class describes the structure of that data in terms of <a href="AttributeDefinition.html">attributes</a> (simple data like strings and numbers), <a href="AssociationDefinition.html">associations</a> (links to and from other objects), <a href="BasicStateMachines.html">state machines</a>, as well as many <a href="ClassContent.html">other things</a> described in this manual.
</p>

<p>To define a class in Umple, specify the keyword 'class', followed by the name of the class (starting in a capital letter in order to respect naming conventions as well as to avoid a
<a href="WE1xxIdentifierInvalid.html">warning</a>) and then the body of the class within curly brackets.</p>

<p>The body can contain <a href="ClassContent.html">various elements that are listed in the Class Content page</a>.</p>

<p><a href="Traits.html">Traits</a> can be used to add the same set of items to several unrelated classes.</a>.</p>

<p>The following UML diagram shows two classes: a Student class and an Address class, linked by an association. The corresponding Umple is below.</p>

<img src="examples/StudentAddress.png" alt="UML diagram showing Student and Address"/>
Expand Down
3 changes: 2 additions & 1 deletion build/reference/0403interfaceDefinition.txt
Expand Up @@ -9,7 +9,8 @@ An interface defines a list of abstract <a href="MethodDefinition.html">methods<

<ul>
<li><a href="Dependclause.html">Dependencies</a></li>
<li><a href="MethodDefinition.html">Method declarations</a></li>
<li><a href="MethodDefinition.html">Method declarations</a> (methods with no body)</li>
<li><a href="isAclause.html">isA clauses</a> (placing interfaces in an inheritance hierarchy)</li>
</ul>

<p>To implement an interface in a class, or to create subinterfaces, use an <a href="isAclause.html">isA clause</a>.</p>
Expand Down
63 changes: 50 additions & 13 deletions build/reference/0405classContent.txt
Expand Up @@ -4,57 +4,94 @@ noreferences

@@description
<p>
A class can contain any of the following items. <a href="interfaceDefinition.html">Interfaces</a> are limited to those indicated.
A class can contain any of the following items. <a href="interfaceDefinition.html">Interfaces</a> are limited to those indicated as <font color="red">[Allowed in interfaces]</font>. A <a href="Traits.html">trait</a> can contain most of the items, indicated as indicated as <font color="green">[Allowed in traits]</font>.
</p>

<ul>

<li><b><a href="UmpleComments.html">Comments</a></b> describe the intent of your class (or interface), and any other elements in the class.</li>
<li><b><a href="UmpleComments.html">Comments</a></b> describe the intent of your class (or interface), and any other elements in the class.<font color="red">[Allowed in interfaces]</font> <font color="green">[Allowed in traits]</font></li>

<br />

<li><b><a href="isAclause.html">isA directives</a></b> that specify a superclass to your class (i.e. a Supervisor could be descrbied as "isA Person") [Interfaces can have more than one]</li>
<li><b><a href="isAclause.html">isA directives</a></b> that specify a superclass to your class (i.e. a Supervisor could be descrbied as "isA Person"). A class can only have one isA clause referring to another class, but can have many referring to traits or interfaces. <font color="red">[More than one allowed in interfaces]</font> <font color="green">[More than one allowed in traits]</font></li>

<br />

<li><b><a href="SingletonPattern.html">A singleton directive</a></b> that limits the system to only one instance of this class (e.g. there may only be one Bank in a banking system)</li>
<li>An <b>abstract;</b> keyword, specifying that the class is abstract (cannot be instantiated, must have at least one concrete subclass).</li>

<br />

<li><b><a href="ImmutablePattern.html">An immutable directive</a></b> that ensures that once constructed, an instance cannot be modified (under development).</li>
<li><b><a href="Dependclause.html">Depend directives</a></b> that describe external dependencies that might be used by your class within methods <font color="red">[Allowed in interfaces]</font> <font color="green">[Allowed in traits]</font>.</li>

<br />

<li><b><a href="Dependclause.html">Depend directives</a></b> that describe external dependencies that might be used by your class within methods (Interfaces can contain these too).</li>
<li><b><a href="AttributeDefinition.html">Attributes</a></b> describing simple data that can be found in any element of the class (i.e. name, dob, amount) <font color="green">[Allowed in traits]</font>. These can be preceded by the keyword <b>const</b> to declare constants.</li>

<br />

<li><b><a href="AttributeDefinition.html">Attributes</a></b> describing simple data that can be found in any element of the class (i.e. name, dob, amount)</li>
<li><b><a href="InlineAssociations.html">Inline associations</a></b> that define links to instances of other classes (or to other instances of this class). <font color="green">[Allowed in traits]</font> (can also be <a href="IndependentlyDefinedAssociations.html">specified outside classes</a>) </li>

<br />

<li><b><a href="BasicStateMachines.html">State machine definitions</a></b> that describe declaratively attributes that change value in certain behaviour patterns in response to actions such as method calls.</li>
<li><b><a href="MethodDefinition.html">Methods</a></b> that provide behaviour for the class. <font color="red">[Allowed in interfaces, but with no method body]</font> <font color="green">[Allowed in traits]</font> (state events are also methods, and <a href="State-DependentMethods.html">methods can also be specified in states</a>)</li>

<br />

<li><b><a href="InlineAssociations.html">Inline associations</a></b> that define links to instances of other classes (or to other instances of this class). </li>
<li><b><a href="EnumerationDefinition.html">Enumerations</a></b> for use inside this class (can also be specified outside classes)</li>

<br />

<li><b><a href="KeysforEqualityandHashing.html">Key directives</a></b> indicating which attributes (or in future, associations) are going to be used to define when one element is equal to another.</li>
<li><b><a href="BasicStateMachines.html">State machine definitions</a></b> that describe declaratively attributes that change value in certain behaviour patterns in response to actions such as method calls. <font color="green">[Allowed in traits]</font> </li>

<br />

<li><b>Class definitions nested inside this class</b> that define subclass of this class as an alternative to using the isA clause.</li>
<li><b><a href="SingletonPattern.html">A singleton directive</a></b> that limits the system to only one instance of this class (e.g. there may only be one Bank in a banking system)<font color="green">[Allowed in traits]</font></li>

<br />

<li><b><a href="TracingBasics.html">Trace directives</a></b> to direct generation of traces from the code.</li>
<li><b><a href="ImmutablePattern.html">An immutable directive</a></b> that ensures that once constructed, an instance cannot be modified (under development).<font color="green">[Allowed in traits]</font></li>

<br />

<li><b><a href="MethodDefinition.html">Methods</a></b> that provide behaviour for the class. (Interfaces can have declarations of methods only; no method bodies)</li>
<li><b><a href="KeysforEqualityandHashing.html">Key directives</a></b> indicating which attributes (or in future, associations) are going to be used to define when one element is equal to another.<font color="green">[Allowed in traits]</font></li>

<br />


<li><a href="BasicTemplates.html"><b>Generation templates</b> and <b>emit methods</b></a> for generating string output.</li>


<br />

<li><a href="SimpleConstraints.html"><b>Invariant constraints</b></a>. These are Boolean expressions that limit the values of attributes and other elements. <font color="green">[Allowed in traits]</font> (other types of constraints can be specified in methods)</li>

<br />

<li><b><a href="BasicMixsets.html">Mixset definitions</a></b> that themselves contains other items that can be in classes. These allow for conditional compilation and are activated by use statements elsewhere.<font color="green">[Allowed in traits]</font></li>

<br />

<li><b>Class definitions nested inside this class</b> that define subclass of this class as an alternative to using the isA clause. (these are not inner classes; those are defined as below)</li>

<br />

<li><b><a href="TracingBasics.html">Trace directives</a></b> to direct generation of traces from the code. <font color="green">[Allowed in traits]</font></li>

<br />


<li>An inner class, specified either by the keyword <b>inner</b> or <b>static</b>, followed by a class definition. These are only relevant to Java generation.</li>

<br />

<li>Several other items to be documented later including the ability to colour classes in diagrams, and to specify test cases.</li>

<br />


</ul>

@@syntax
[[classContent]] [[traitContent]]


0 comments on commit 3f8cbd5

Please sign in to comment.