aem-eclipse-developer-tools icon indicating copy to clipboard operation
aem-eclipse-developer-tools copied to clipboard

Creating new AEM Project using Wizard requires Advanced settings

Open rmcdouga opened this issue 5 months ago • 3 comments

It appears that during the creation of the new AEM Project, some of the project template variables are not being set. This causes the user to have to open up the Advanced tab and fill in the variables manually.

Steps to Reproduce (see screencap below):

  1. In Eclipse 2025-09, select File/New/Project...
  2. In the New Project dialog, select AEM/AEM Sample Multi-module project and hit Next
  3. Leave the location at default and leave the Archetype at the default (archetype version 54), and hit Next
  4. Change the name to sample and an error appears group Id must be specified even though a default group id is visible
  5. Enter a Group Id (for example com.github.rmcdouga and an error appears artifact Id must be specified even though a default artifact id is visible
  6. Enter an Artifact Id (for example sample-app) and an error appears package must be specified. In order to set the package, the user must expand the Advanced properties.
  7. Enter the a Package value and an error appears appId must be specified. Enter the appId and the wizard can be move to the next screen.

Expected Behaviour:

  1. Reasonable defaults should be able to be derived for all the advanced properties from the basic properties. Any mandatory advanced properties that don't have reasonable defaults or can't be derived from the basic properties should be promoted into the basic properties section. I feel a user shouldn't be required to expand the Advanced properties unless they wish to customize the generated maven project beyond the defaults.

  2. Arguably, the basic properties should accept the pre-populated values or something should indicate that those prepopulated values can't be used directly (maybe make the values italisized or semi-transparent to indicate that they are not "real"). This is a minor point and doesn't prevent the wizard from being used.

Here is a screencap of the process: Image

rmcdouga avatar Sep 23 '25 13:09 rmcdouga

Thanks for the report.

I think that "appId" needs to be promoted to a top-level field because it always requires user input. The package field should default to the group id but I'm not sure how to make this usable because both can be edited independently. One idea is to keep the values in sync as long as the 'Advanced' section is collapsed and and disconnect them for good when it's expanded and the user can edit it manually.

rombert avatar Sep 24 '25 14:09 rombert

I think that "appId" needs to be promoted to a top-level field because it always requires user input. The package field should default to the group id but I'm not sure how to make this usable because both can be edited independently.

My recollection (rightly or wrongly) was that this appId and package fields used to be generated from the basic section's Name field. Older versions of the plugin would lowercase the Name and replace non-alphanumerics with dashes. It then used the resulting "cleaned" version as the appId and appended the appId to the groupId to derive the package name.

I had assumed that the code stopped working because of changes to the AEM maven archetype.

One idea is to keep the values in sync as long as the 'Advanced' section is collapsed and then disconnect them for good when it's expanded and the user can edit it manually.

That's a reasonable approach. I thought the older versions of the plugin would keep the three basic fields in sync with advanced but only sync the derived fields if they were blank (i.e. once set, they were only recalculated again if empty and the associated basic field changed).

rmcdouga avatar Sep 25 '25 11:09 rmcdouga

The aem-project-archetype instructs the user to only set

 -D appTitle="My Site" \
 -D appId="mysite" \
 -D groupId="com.mysite"

I think we can do the same and make sure that the defaults are applied following the documentation from https://github.com/adobe/aem-project-archetype?tab=readme-ov-file#available-properties .

It's not yet clear to me if it's worth keeping the extra 'Package' and 'Version' text inputs from the advanced section or can we move everything to the table and only add the required inputs ( app title, app id and group id ) at the top.

rombert avatar Sep 25 '25 14:09 rombert