Michiel Trimpe
By: a guest | Aug 25th, 2008 | Syntax:
Java | Size: 2.30 KB | Hits: 78 | Expires: Never
// Get the CMS site through the request context
private CMSSite getSite(RequestContext context) {
CMSContextResolver resolver = (CMSContextResolver) Jetspeed.getComponentManager().getComponent(
"CMSContextResolver");
CMSPortalURL url = new JetspeedCMSPortalURL(context.getRequest(), context.getResponse(), context.getPath(),
context.
getCharacterEncoding(),
(Boolean) forceGetField
(resolver,
"mapServletPathToSitename"),
(Boolean) forceGetField
(resolver,
"mapServletPathToSitemapURL"),
(Boolean) forceGetField
(resolver,
"useDefaultSite"));
return getSite(url);
}
public CMSSite getSite(CMSPortalURL portalURL) {
try {
portalRegistration = (HippoPortalRegistration) Jetspeed.getComponentManager().getComponent(
HippoPortalRegistration.class);
CMSApplicationRegistry registry = (CMSApplicationRegistry) collapseProxy(portalRegistration
.getCMSApplicationRegistry());
Map serverDomainMap
= (Map) forceGetField
(registry,
"serverDomainMap");
CMSDomain host = portalURL.getHost();
String hostName
= host.
getName();
int hostPort = host.getPort();
String fullDomainName
= hostPort
== 80 ? hostName
: hostName
+ ":" + hostPort
;
Object domain
= serverDomainMap.
get(fullDomainName
);
if (domain != null) {
Class domainClass = domain.getClass();
String siteName
= portalURL.
getSiteName();
if (siteName == null) {
siteName
= (String) forceGetField
(domain,
"defaultSite");
}
return (CMSSite
) domainClass.
getMethod("getSite",
String.
class).
invoke(domain, siteName
);
} else {
return null;
}
}
return null;
}
try {
Field field
= object.
getClass().
getDeclaredField(fieldName
);
field.setAccessible(true);
return field.get(object);
}
return null;
}
return forceGetField
(Proxy.
getInvocationHandler(object
),
"registration");
}