Book a Demo

Author Topic: Disabling Set Package as Namespace Root (for a root Node)  (Read 21719 times)

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Disabling Set Package as Namespace Root (for a root Node)
« on: September 02, 2021, 08:47:34 pm »
On Sparx 15 (build 1559), how do I stop an already created Root node from being a Namespace Root. This, https://sparxsystems.com/enterprise_architect_user_guide/15.2/model_domains/namespaces.html,  does not seem to be working.

Edit: The functionality described above works fine with a package but not with a root node.
« Last Edit: September 02, 2021, 08:50:36 pm by Modesto Vega »

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #1 on: September 02, 2021, 09:06:40 pm »
On Sparx 15 (build 1559), how do I stop an already created Root node from being a Namespace Root? This, https://sparxsystems.com/enterprise_architect_user_guide/15.2/model_domains/namespaces.html,  does not seem to be working.

Edit: The functionality described above works fine with a package but not with a root node.
Hi Modesto,
Notwithstanding that Namespace support in EA is less than optimal, I would have thought that, by definition, a Root node would be a namespace root.

What is your use case that suggests it should not be?

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #2 on: September 02, 2021, 09:18:03 pm »
Thanks Paolo, I don't have a specific use case in mind. Just tinkering with a new repository involving ProCloud Server.

I would have thought that, by definition, a Root node would be a namespace root.
This is exactly what happens if you populate a repository with the EABase_1220 script. However, if you create a root node using Sparx EA itself, it does not default it to a namespace root and there is nothing I can do turn a root node which is not a namespace root into a namespace root.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #3 on: September 02, 2021, 09:24:49 pm »
I think this setting is controlled by the t_package.Namespace column containing NULL (not namespace) or 1 (namespace)

Geert

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #4 on: September 02, 2021, 09:31:57 pm »
I think this setting is controlled by the t_package.Namespace column containing NULL (not namespace) or 1 (namespace)

Geert
I am sure it is but there is no way to change it for a root node via the user interface. The same issue does not apply to a proper package.

P.S.: I know I can hack the database but this is not optimal.
P.S.2: It is also impossible to rename root nodes via the user interface.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #5 on: September 02, 2021, 10:34:57 pm »
P.S.2: It is also impossible to rename root nodes via the user interface.
You can change it in the project browser using F2

Geert

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #6 on: September 02, 2021, 10:43:44 pm »
Thanks, Paolo, I don't have a specific use case in mind. Just tinkering with a new repository involving ProCloud Server.

I would have thought that, by definition, a Root node would be a namespace root.
This is exactly what happens if you populate a repository with the EABase_1220 script. However, if you create a root node using Sparx EA itself, it does not default it to a namespace root and there is nothing I can do to turn a root node that is not a namespace root into a namespace root.
That sounds like a straight defect.  (see my signature)

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #7 on: September 03, 2021, 12:37:00 am »
Thanks, Paolo, I don't have a specific use case in mind. Just tinkering with a new repository involving ProCloud Server.

I would have thought that, by definition, a Root node would be a namespace root.
This is exactly what happens if you populate a repository with the EABase_1220 script. However, if you create a root node using Sparx EA itself, it does not default it to a namespace root and there is nothing I can do to turn a root node that is not a namespace root into a namespace root.
That sounds like a straight defect.  (see my signature)

Paolo
Thanks Paolo, reported as a defect. Hopefully they will fix it.

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #8 on: September 03, 2021, 10:38:34 am »
Root nodes are always a namespace root. The corresponding flag is intentionally not used. That's why the option is not in the GUI.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #9 on: September 03, 2021, 10:49:59 am »
Root nodes are always a namespace root. The corresponding flag is intentionally not used. That's why the option is not in the GUI.
(my emphasis)
I consider that a UI defect.  The flag should be marked, visible and disabled to reinforce the fact.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #10 on: September 03, 2021, 10:52:08 am »
I consider that a UI defect.  The flag should be marked, visible and disabled to reinforce the fact.
EA has a big problem with having the context menus too large. Doing that would be a much worse problem.

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #11 on: September 03, 2021, 06:04:34 pm »
Root nodes are always a namespace root. The corresponding flag is intentionally not used. That's why the option is not in the GUI.
Root nodes are not always namespace roots because it is possible to create a root node that is not a namespace root. The steps to reproduce this are very simple, just create a new project - i.e., local repository. The root node created by this operation is not a namespace root.

However, if I populate a database repository using the EABase_1220 script, it does create the root node as a namespace root.

As per Paolo's signature: "aim for consistency".

P.S.: I also do no see why root nodes must always be namespace roots if I can also set any package under it as a namespace root. How many namespace roots should I have in a project/repository?
« Last Edit: September 03, 2021, 06:06:22 pm by Modesto Vega »

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #12 on: September 06, 2021, 08:54:08 am »
it is possible to create a root node that is not a namespace root.
No, it's not. As I said, a root node is always a namespace root regardless of the property. The UI doesn't set it because it's always a root.

How many namespace roots should I have in a project/repository?
It's just a package that corresponds to the top-level namespace. It doesn't matter how many you have.

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #13 on: September 06, 2021, 06:15:59 pm »
it is possible to create a root node that is not a namespace root.
No, it's not. As I said, a root node is always a namespace root regardless of the property. The UI doesn't set it because it's always a root.
Are you saying that a root node is a namespace root irrespective of whether the property is set correctly or not?

If so, it would be nice if Sparx EA always creates root nodes with the namespace root property set correctly.

How many namespace roots should I have in a project/repository?
It's just a package that corresponds to the top-level namespace. It doesn't matter how many you have.
I am having trouble visualising this. Assuming that a root node is always a namespace root, it is perfectly possible to create the following structure in Sparx EA, where everything in blue is a namespace root.

-- Root1
----- Package1
--------- Package 1a
--------- Package 1b
----- Package2
--------- Package 2a
--------- Package 2b
-- Root2
----- Package3
--------- Package 3a

Please help understand how this would be hierarchised.

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Disabling Set Package as Namespace Root (for a root Node)
« Reply #14 on: September 08, 2021, 09:06:02 pm »
I am still eagerly awaiting a reply on how to hierarchise the example of my post dated September 06, 2021, 06:15:59 pm. This should give an idea of, to quote Paolo, how suboptimal the use or namespaces is in Sparx EA.
-- Root1
----- Package1
--------- Package 1a
--------- Package 1b
----- Package2
--------- Package 2a
--------- Package 2b
-- Root2
----- Package3
--------- Package 3a

By the way, the reason for the example is because somehow I can see an interplay between how namespaces are used/can be used and how to create UML profiles for used in MDG.

Also sharing my latest reply to an exchange with the support team regarding this:

Quote
The issue is around consistency of user experience. The issue is not about being able to set the namespace root property through the GUI for root nodes. If standard functionality is for all root nodes to be namespace roots, I have no problem with it. But I have a problem with an inconsistent user experience which leads me (and other users) to believe root nodes are not always namespace roots.

The fixes are so simple that I do not understand why it has to be debated:
•   Ensure all root nodes are created as namespace roots irrespective of what method is used – i.e., creating through them through the UI or using a script to populate the repository. This means ensuring all root nodes are created with the namespace root property set to 1.
•   Disable the Set as Namespace Root menu item for root nodes.