Bug 1110406 - Allow multiple apps registering the very same AMD paths
Summary: Allow multiple apps registering the very same AMD paths
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: JBoss Enterprise Portal Platform 6
Classification: JBoss
Component: Portal
Version: 6.2.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ER04
: 6.2.0
Assignee: Peter Palaga
QA Contact: Tomas Kyjovsky
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-06-17 14:57 UTC by Peter Palaga
Modified: 2025-02-10 03:36 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2025-02-10 03:36:08 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker GTNPORTAL-3506 0 Major Resolved Allow multiple apps registering the very same AMD paths 2014-07-15 14:21:24 UTC

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.


Note You need to log in before you can comment on or make changes to this bug.