ACE Source Artefacts and Generated Outputs

Table of Contents

Source Artefacts and Generated Outputs

The source for a typical ACE component consists of a Meta class, a Component class, a Renderer class, any other ancillary classes, as well as Javascript, CSS and image resources. There are two categories of Javascript, CSS and image resources: one being for resources which are intrinsically required for the component to function, which need to always be in the page when the component is in use; the other being for skinning, which might only be in the page when that skin is currently being used.

Three main processes are involved with ACE, for generating all outputs, to result in a built component, given the above sources.

  1. Code generation and compilation.  The Meta class is compiled and then the generator inspects it to create all the results. This includes the Base class, which contains all of the component properties and fields with their boiler plate getter and setter methods, state saving methods, and @ResourceDependency annotations for the Javascript and CSS resources. As well, the JSP Tag class, which is used for generating the Tag Library Documentation; the MetaHandler class, which is used by Facelets for wiring custom MethodExpression properties; and the faces-comfig.xml.
  2. Sprite image generation.  CSS resources may be annotated, so that images in them will be collected together into sprite images, which allow for a reduced number of HTTP GET requests, which reduces page load time.
  3. CSS image resource re-pathing.  The standard web.xml JSF servlet-mapping will not work with CSS linked image resources. To avoid adding additional servlet-mapping entries, the CSS will be modified to include EL resource paths to the images.

Example Component Source and Output Paths

- Java Source -
ace\component\src\org\icefaces\ace\component\[componentname]
ace\component\src\org\icefaces\ace\component\[componentname]\ComponentName.java
ace\component\src\org\icefaces\ace\component\[componentname]\ComponentNameMeta.java
ace\component\src\org\icefaces\ace\component\[componentname]\ComponentNameRenderer.java

- Javascript and CSS Intrinsic Functionality Source -
ace\component\resources\icefaces.ace\[componentname]
ace\component\resources\icefaces.ace\[componentname]\componentname.js

- Generated Output Source -
ace\component\build\generated\base\org\icefaces\ace\component\[componentname]\ComponentNameBase.java
ace\component\build\generated\support\org\icefaces\ace\component\[componentname]\ComponentNameMetaHandler.java
ace\component\build\generated\support\org\icefaces\ace\component\[componentname]\ComponentNameTag.java

- Compiled Meta Class Files
ace\component\build\meta\org\icefaces\ace\component\[componentname]\ComponentNameMeta.class

- Compiled Class Files
ace\component\build\exploded\org\icefaces\ace\component\[componentname]
ace\component\build\exploded\org\icefaces\ace\component\[componentname]\ComponentName.class
ace\component\build\exploded\org\icefaces\ace\component\[componentname]\ComponentNameBase.class
ace\component\build\exploded\org\icefaces\ace\component\[componentname]\ComponentNameMetaHandler.class
ace\component\build\exploded\org\icefaces\ace\component\[componentname]\ComponentNameRenderer.class
ace\component\build\exploded\org\icefaces\ace\component\[componentname]\ComponentNameTag.class
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

© Copyright 2021 ICEsoft Technologies Canada Corp.