On Tue, Oct 19, 2010 at 11:50 PM, Sameera Jayasoma <same...@wso2.com> wrote:
> Hi devs, > > On Tue, Oct 12, 2010 at 12:20 PM, Sameera Jayasoma <same...@wso2.com>wrote: > >> >> >> On Tue, Oct 12, 2010 at 10:30 AM, Sanjaya Vithanagama >> <sanja...@wso2.com>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. > I tested this with a simple class which implemented UIResourceProvider and it worked. Thank you Sameera. > 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 >>> Carbon-dev@wso2.org >>> 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: same...@wso2.com >> blog: http://tech.jayasoma.org >> >> Lean . Enterprise . Middleware >> > > > > -- > Sameera Jayasoma > Technical Lead and Product Manager, WSO2 Carbon > > WSO2, Inc. (http://wso2.com) > email: same...@wso2.com > blog: http://tech.jayasoma.org > > Lean . Enterprise . Middleware > > _______________________________________________ > Carbon-dev mailing list > Carbon-dev@wso2.org > https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev > >
_______________________________________________ Carbon-dev mailing list Carbon-dev@wso2.org https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev