[gatein-issues] [JBoss JIRA] Updated: (GTNWCI-11) Re-order children container when register host in TC6ServletContainerContext
Phan Chuong (JIRA)
jira-events at lists.jboss.org
Mon Jan 18 05:11:47 EST 2010
[ https://jira.jboss.org/jira/browse/GTNWCI-11?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phan Chuong updated GTNWCI-11:
------------------------------
Description:
I'm working on eXo WCM, which based on eXo DMS, and of course, based on GateIn Portal.
This is the application's order when run eXo WCM with GateIn:
||Application||Portal||DMS||WCM||
|dms-extension| . | x | . |
|ecm| . | x | . |
|exoadmin| x | . | . |
|eXoGadgets| x | . | . |
|portal| x | . | . |
|presentation| . | . | x |
|formgenerator| . | . | x |
|eXoDMSGadgets| . | x | . |
|starter| x | . | . |
|searches| . | . | x |
|integration| x | . | . |
|rest| x | . | . |
|eXoGadgetServer| x | . | . |
|newsletter| . | . | x |
|eXoDMSResources| . | x | . |
|eXoWCMResources| . | . | x |
|dashboard| x | . | . |
|web| x | . | . |
|eXoResources| x | . | . |
|ecm-wcm-extension| . | . | x |
This made a blocker bug in eXo WCM: almost javascript is ignored because eXo object (which is initialized in eXo.js, belong to eXoResources) is not exist when other object which need it is initialized. For example: in dms-extension, there is an object which call eXo, but at that time, eXo object is not exist, so the javascript in dms-extension is died. What we need is make sure all portal's component is deploy first, then DMS, then WCM, like this
||Application||Portal||DMS||WCM||
|exoadmin| x | . | . |
|eXoGadgets| x | . | . |
|portal| x | . | . |
|starter| x | . | . |
|integration| x | . | . |
|rest| x | . | . |
|eXoGadgetServer| x | . | . |
|dashboard| x | . | . |
|web| x | . | . |
|eXoResources| x | . | . |
|dms-extension| . | x | . |
|ecm| . | x | . |
|eXoDMSGadgets| . | x | . |
|eXoDMSResources| . | x | . |
|searches| . | . | x |
|presentation| . | . | x |
|formgenerator| . | . | x |
|newsletter| . | . | x |
|eXoWCMResources| . | . | x |
|ecm-wcm-extension| . | . | x |
So i added a new method in TC6ServletContainerContext:
{code:title=Bar.java|borderStyle=solid}
private Container[] sortChildren(Host host) {
Container[] containers = host.findChildren();
List<Container> unsortedContainers = Arrays.asList(containers);
Collections.sort(unsortedContainers, new Comparator<Container>() {
public int compare(Container c1, Container c2) {
String priority1 = ((StandardContext) c1).getServletContext().getInitParameter("priority");
String priority2 = ((StandardContext) c2).getServletContext().getInitParameter("priority");
if ("null".equals(priority1) || priority1 == null) priority1 = "0";
if ("null".equals(priority2) || priority2 == null) priority2 = "0";
int p1 = Integer.parseInt(priority1);
int p2 = Integer.parseInt(priority2);
if (p1 > p2) return 1;
else return -1;
};
});
return unsortedContainers.toArray(new Container[containers.length]);
}
{code}
and in TC6ServletContainerContext.registerHost(Host host)
{panel:title=TC6ServletContainerContext.registerHost(Host host)| borderStyle=dashed| borderColor=#ccc| titleBGColor=#F7D6C1| bgColor=#FFFFCE}
//Container[] childrenContainers = host.findChildren();
Container[] childrenContainers = sortChildren(host);
{code}
was:
I'm working on eXo WCM, which based on eXo DMS, and of course, based on GateIn Portal.
This is the application's order when run eXo WCM with GateIn:
||Application||Portal||DMS||WCM||
|dms-extension| . | x | . |
|ecm| . | x | . |
|exoadmin| x | . | . |
|eXoGadgets| x | . | . |
|portal| x | . | . |
|presentation| . | . | x |
|formgenerator| . | . | x |
|eXoDMSGadgets| . | x | . |
|starter| x | . | . |
|searches| . | . | x |
|integration| x | . | . |
|rest| x | . | . |
|eXoGadgetServer| x | . | . |
|newsletter| . | . | x |
|eXoDMSResources| . | x | . |
|eXoWCMResources| . | . | x |
|dashboard| x | . | . |
|web| x | . | . |
|eXoResources| x | . | . |
|ecm-wcm-extension| . | . | x |
This made a blocker bug in eXo WCM: almost javascript is ignored because eXo object (which is initialized in eXo.js, belong to eXoResources) is not exist when other object which need it is initialized. For example: in dms-extension, there is an object which call eXo, but at that time, eXo object is not exist, so the javascript in dms-extension is died. What we need is make sure all portal's component is deploy first, then DMS, then WCM, like this
||Application||Portal||DMS||WCM||
|exoadmin| x | . | . |
|eXoGadgets| x | . | . |
|portal| x | . | . |
|starter| x | . | . |
|integration| x | . | . |
|rest| x | . | . |
|eXoGadgetServer| x | . | . |
|dashboard| x | . | . |
|web| x | . | . |
|eXoResources| x | . | . |
|dms-extension| . | x | . |
|ecm| . | x | . |
|eXoDMSGadgets| . | x | . |
|eXoDMSResources| . | x | . |
|searches| . | . | x |
|presentation| . | . | x |
|formgenerator| . | . | x |
|newsletter| . | . | x |
|eXoWCMResources| . | . | x |
|ecm-wcm-extension| . | . | x |
So i added a new method in TC6ServletContainerContext:
{code}
private Container[] sortChildren(Host host) {
Container[] containers = host.findChildren();
List<Container> unsortedContainers = Arrays.asList(containers);
Collections.sort(unsortedContainers, new Comparator<Container>() {
public int compare(Container c1, Container c2) {
String priority1 = ((StandardContext) c1).getServletContext().getInitParameter("priority");
String priority2 = ((StandardContext) c2).getServletContext().getInitParameter("priority");
if ("null".equals(priority1) || priority1 == null) priority1 = "0";
if ("null".equals(priority2) || priority2 == null) priority2 = "0";
int p1 = Integer.parseInt(priority1);
int p2 = Integer.parseInt(priority2);
if (p1 > p2) return 1;
else return -1;
};
});
return unsortedContainers.toArray(new Container[containers.length]);
}
{code}
and in TC6ServletContainerContext.registerHost(Host host)
{panel:title=TC6ServletContainerContext.registerHost(Host host)| borderStyle=dashed| borderColor=#ccc| titleBGColor=#F7D6C1| bgColor=#FFFFCE}
//Container[] childrenContainers = host.findChildren();
Container[] childrenContainers = sortChildren(host);
{code}
> Re-order children container when register host in TC6ServletContainerContext
> ----------------------------------------------------------------------------
>
> Key: GTNWCI-11
> URL: https://jira.jboss.org/jira/browse/GTNWCI-11
> Project: GateIn Web Container Integration
> Issue Type: Feature Request
> Affects Versions: 2.0.0-CR02
> Reporter: Phan Chuong
> Priority: Blocker
> Fix For: 2.0.0-CR03
>
>
> I'm working on eXo WCM, which based on eXo DMS, and of course, based on GateIn Portal.
> This is the application's order when run eXo WCM with GateIn:
> ||Application||Portal||DMS||WCM||
> |dms-extension| . | x | . |
> |ecm| . | x | . |
> |exoadmin| x | . | . |
> |eXoGadgets| x | . | . |
> |portal| x | . | . |
> |presentation| . | . | x |
> |formgenerator| . | . | x |
> |eXoDMSGadgets| . | x | . |
> |starter| x | . | . |
> |searches| . | . | x |
> |integration| x | . | . |
> |rest| x | . | . |
> |eXoGadgetServer| x | . | . |
> |newsletter| . | . | x |
> |eXoDMSResources| . | x | . |
> |eXoWCMResources| . | . | x |
> |dashboard| x | . | . |
> |web| x | . | . |
> |eXoResources| x | . | . |
> |ecm-wcm-extension| . | . | x |
> This made a blocker bug in eXo WCM: almost javascript is ignored because eXo object (which is initialized in eXo.js, belong to eXoResources) is not exist when other object which need it is initialized. For example: in dms-extension, there is an object which call eXo, but at that time, eXo object is not exist, so the javascript in dms-extension is died. What we need is make sure all portal's component is deploy first, then DMS, then WCM, like this
> ||Application||Portal||DMS||WCM||
> |exoadmin| x | . | . |
> |eXoGadgets| x | . | . |
> |portal| x | . | . |
> |starter| x | . | . |
> |integration| x | . | . |
> |rest| x | . | . |
> |eXoGadgetServer| x | . | . |
> |dashboard| x | . | . |
> |web| x | . | . |
> |eXoResources| x | . | . |
> |dms-extension| . | x | . |
> |ecm| . | x | . |
> |eXoDMSGadgets| . | x | . |
> |eXoDMSResources| . | x | . |
> |searches| . | . | x |
> |presentation| . | . | x |
> |formgenerator| . | . | x |
> |newsletter| . | . | x |
> |eXoWCMResources| . | . | x |
> |ecm-wcm-extension| . | . | x |
> So i added a new method in TC6ServletContainerContext:
> {code:title=Bar.java|borderStyle=solid}
> private Container[] sortChildren(Host host) {
> Container[] containers = host.findChildren();
> List<Container> unsortedContainers = Arrays.asList(containers);
> Collections.sort(unsortedContainers, new Comparator<Container>() {
> public int compare(Container c1, Container c2) {
> String priority1 = ((StandardContext) c1).getServletContext().getInitParameter("priority");
> String priority2 = ((StandardContext) c2).getServletContext().getInitParameter("priority");
> if ("null".equals(priority1) || priority1 == null) priority1 = "0";
> if ("null".equals(priority2) || priority2 == null) priority2 = "0";
> int p1 = Integer.parseInt(priority1);
> int p2 = Integer.parseInt(priority2);
> if (p1 > p2) return 1;
> else return -1;
> };
> });
> return unsortedContainers.toArray(new Container[containers.length]);
> }
> {code}
> and in TC6ServletContainerContext.registerHost(Host host)
> {panel:title=TC6ServletContainerContext.registerHost(Host host)| borderStyle=dashed| borderColor=#ccc| titleBGColor=#F7D6C1| bgColor=#FFFFCE}
> //Container[] childrenContainers = host.findChildren();
> Container[] childrenContainers = sortChildren(host);
> {code}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the gatein-issues
mailing list