Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1110406

Summary: Allow multiple apps registering the very same AMD paths
Product: [JBoss] JBoss Enterprise Portal Platform 6 Reporter: Peter Palaga <ppalaga>
Component: PortalAssignee: Peter Palaga <ppalaga>
Status: CLOSED UPSTREAM QA Contact: Tomas Kyjovsky <tkyjovsk>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: epp-bugs
Target Milestone: ER04   
Target Release: 6.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:36:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Peter Palaga 2014-06-17 14:57:01 UTC
Description of problem:
Cloned from https://issues.jboss.org/browse/GTNPORTAL-3506 so that it gets QA'd properly.

== Current state

GTNPORTAL-3502 (Bug#1103768) introduced a common deployer for JavaScript and skin services with the following characteristics: when an app attempts to add an AMD path mapping that is available in the portal already,
all JS and CSS resources from that app are rejected. The path mapping comparison is done on path prefixes only, the target paths are not inspected at all.

Example:
Application app.war wants to register the AMD module ID prefix
/dojo to be mapped to target path http://fastcdn.com/dojo/1.7.0
But the prefix /dojo was registered already for
http://othercdn.com/dojo/1.9.1 by some other application.
All JS and CSS resources from app.war are rejected by skin and JSConfig services.


== Proposed change

The above approach is unnecessarily restrictive, because it rejects also applications that want to register the very same target path for a given prefix as is registered in the portal already.

Example:
Application app2.war wants to register the AMD module ID prefix
/dojo to be mapped to target path http://fastcdn.com/dojo/1.7.0
The prefix /dojo was previously registered by some other application app1.war to point to the very same target path http://fastcdn.com/dojo/1.7.0.
JS and CSS resources from app2.war should be accepted by the portal because no inconsistency is introduced by app2.war.
However, having accepted two or more apps relying on one path mapping, the portal must reject all changes that could break any of the affected applications. E.g. the portal may not remove the mapping on app1.war undeploy or it may not allow for re-deploying app1.war with a modified path mapping while app2.war is still active.

Version-Release number of selected component (if applicable):
JBoss Portal 6.2.0.ER3

How reproducible:
Always

Steps to Reproduce:

Steps to reproduce:

(1) build arcgis-gears-portlet

cd ~/scratch
wget https://github.com/jboss-developer/jboss-portal-quickstarts/blob/6.2.x-develop/src/build/settings-for-contributors.xml
git clone https://github.com/ppalaga/arcgis-gears-portlet.git
cd arcgis-gears-portlet
git checkout GTNPORTAL-3485
mvn clean install -s ../settings-for-contributors.xml
# put arcgis-gears-portlet.war aside:
cp arcgis-gears-portlet.war ..

(2) build arcgis-gears-portlet-clone which is a clone of arcgis-gears-portlet using the same path entries, but it is called differently, so that it can be deployed together with arcgis-gears-portlet
git checkout GTNPORTAL-3506
mvn clean install -s ../settings-for-contributors.xml

(3) deploy both ~/scratch/arcgis-gears-portlet.war and ~/scratch/arcgis-gears-portlet/arcgis-gears-portlet-clone.war
Expected: no errors or warnings in JBoss console during deploy.

(4) Add both portlets to a page, open the page
Expected: both portlets work, no loading errors in the devconsole of the browser, some CSS and JavaScript resources are loaded from http://js.arcgis.com
Expected: In the source of the reloaded page, in line starting with "var require =", there should be some path entries containing with js.arcgis.com

(5) Remove the ArcGIS Portlet Clone from the page and undeploy arcgis-gears-portlet-clone. 
Expected: The arcgis-gears-portlet.war should still work as in step (4)

(6) Remove the ArcGIS Portlet from the page and undeploy arcgis-gears-portlet
Expected: in the source of the reloaded page, in line starting with "var require =", there should be no path entries containing with js.arcgis.com

Comment 2 Peter Palaga 2014-06-18 08:24:03 UTC
https://github.com/gatein/gatein-portal/pull/878 was merged in upstream.

Comment 4 Red Hat Bugzilla 2025-02-10 03:36:08 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.