Hi devs, On Tue, Oct 12, 2010 at 12:20 PM, Sameera Jayasoma <[email protected]> wrote:
> > > On Tue, Oct 12, 2010 at 10:30 AM, Sanjaya Vithanagama > <[email protected]>wrote: > >> Hi All, >> >> In human task implementation we came across a requirement to deploy user >> uploaded custom jsps. We tried to use the webapp management feature in >> carbon. But as the uploaded war files are deployed in a different >> application context, we are unable to include the jsps in Cabon context. We >> need a change in the carbon UI framework to support loading of external jsp >> pages. >> >> Carbon UI bundle's JspServlet class loads jsp files based on the resource >> name [in getResource() method]. Currently it tries to resolve the resource >> bundle using the resource path and then loads the jsp from the particular >> bundle. Sameera suggested that we can have a list of jsp providers where >> they implement a common interface. So if a bundle cannot be resolved for a >> particular jsp page (which is the case for a user uploaded jsp), we check >> whether there are any implementers of this provider interface. If there are >> any, the jsp's URL can be retrieved from that provider. >> >> Feedback appreciated on this approach. >> > > Yeah. At the moment, we load UI resources only from bundles. Here the idea > is to introduce UIResourceProviders concept to our UI framework. The default > UIResourceProvider loads resources from bundles. But others can write their > own providers also. i.e. loading resources from the file system, registry. > > I will update UI framework to support different UIResourceProviders Others > can register their UIResourceProviders as OSGi services. > This facility is now available in the Carbon UI framework. If you want to plug a different UI resource provider, please implement the following interface and registers an instance of your implementation as an OSGi service. When you register the OSGi service, use the fully qualified class name of this interface as the key. package org.wso2.carbon.ui.util; import java.net.URL; import java.util.Set; /** * Defines a set of methos to load UI resources and resource paths from resource providers such as OSGi Bundles, * registry, file system, etc. */ *public interface UIResourceProvider {* /** * Returns a URL to the resource that is mapped to a specified path. The path must begin with a "/" and is * interpreted as relative to the current context root. * * This method returns null if no resource is mapped to the pathname. * * @param path a String specifying the path to the resource * @return the resource located at the named path, or null if there is no resource at that path */ * public URL getUIResource(String path);* /** * Returns a directory-like listing of all the paths to resources within the web application whose longest sub-path * matches the supplied path argument. Paths indicating subdirectory paths end with a '/'. The returned paths are * all relative to the root of resource provider and have a leading '/'. For example, for a resource provider * containing * * /welcome.html * /WEB_INF * /WEB-INF/web.xml * /WEB-INF/tiles * /WEB-INF/tiles/main_defs.xml * * getResourcePaths("/") returns {"/welcome.html", "/WEB_INF"}. * getResourcePaths("/WEB_INF/") returns {"/WEB-INF/web.xml", "/WEB-INF/tiles/"}. * getResourcePaths("/WEB-INF/tiles/") returns {"/WEB-INF/tiles/main_defs.xml"}. * * @param path partial path used to match the resources, which must start with a / * @return a Set containing the directory listing, or null if there are no resources whose path begins with the * supplied path. */ * public Set<String> getUIResourcePaths(String path);* } Thanks Sameera > WDYT? > > Thanks > Sameera > >> >> Regards, >> SanjayaV. >> >> _______________________________________________ >> Carbon-dev mailing list >> [email protected] >> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >> >> > > > -- > Sameera Jayasoma > Technical Lead and Product Manager, WSO2 Carbon > > WSO2, Inc. (http://wso2.com) > email: [email protected] > blog: http://tech.jayasoma.org > > Lean . Enterprise . Middleware > -- Sameera Jayasoma Technical Lead and Product Manager, WSO2 Carbon WSO2, Inc. (http://wso2.com) email: [email protected] blog: http://tech.jayasoma.org Lean . Enterprise . Middleware
_______________________________________________ Carbon-dev mailing list [email protected] https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev
