Portlet Preference Persistence

Hi folks,
We have observed some behaviour which seems kind of strange and was
hoping someone at BEA or anybody else for that matter could provide us
with some insight into what we are missing.
When defining portlet preferences in the admin tool, if we define the
preference on a portlet in the library, the preference gets persisted
into the pf_portlet_preference table and the portlet_definition_id is
inserted into the portlet_instance_id column. However, when we add a
portlet to a portal and add a preference there, the portlet_instance_id
gets inserted into the portlet_instance_id column.
We haven't been able to determine how to differentiate between those ids
that were definition_ids and those ids that were instance_ids. Of
course, if there is no mechanism to differentiate between them then this
is a bug. Can anyone help?
If it helps, we have set propogate-portlet-preferences to false in
netuix-config.xml.
Cheers
Dennis

I ran a simple test. I put the following line of code in a JSP and pointed a portlet at it:
PortletContextFactory.createPortletContext.setSettingValue(SettingType.Portlet, "foo", "bar");
I put this portlet in three places:
1) A MyPage
2) A Community (id 234)
3) Another Community (id 235)
When I looked in the database in the PTPREFS table, I was really surprised by what I saw. It created three rows as follows:
PREFNAME PREFVALUE PREFOBJECTID PREFCLASSID
foo      bar       0            0
foo      bar       234          512
foo      bar       235          512Prior to G6, if my memory serves me correctly, a portlet pref could be set on one community and read on another. I'm not as certain about this point, but I think it could also be set on a MyPage and read on a community (and vice versa).
If you wanted page-specific or community-specific portlet preferences, you could always append the page id or community id to the pref name. However, following this undocumented design change, there's no way AFAIK to remove the new community-specific nature of portlet prefs.
Bug or feature? Hard to say. I'd like to get the official word from BEA on whether this was intentional or not and either way, could somebody please update the documentation ? If there's been a major change in the design of the pref model, there ought to be at least a little documentation on it.
Chris Bucchere | bdg | [email protected] | http://www.thebdgway.com
Edited by bucchere at 02/12/2007 8:47 PM

Similar Messages

  • Replacing library with template deletes portlet preferences

    Hi,
    If I have to deploy a new version of our portal, with changes to the
    .portal file I have to make a dummy desktop from the .portal file, and
    then say yes to replace library with template. If I do this however all
    my portlet preferences are resat to their default values. Are there
    anyway to avoid this, or another way to get the library updated with the
    newest version, without having to make a dummy desktop.
    /Steen

    Hi,
    If I have to deploy a new version of our portal, with changes to the
    .portal file I have to make a dummy desktop from the .portal file, and
    then say yes to replace library with template. If I do this however all
    my portlet preferences are resat to their default values. Are there
    anyway to avoid this, or another way to get the library updated with the
    newest version, without having to make a dummy desktop.
    /Steen

  • Unable to read Portlet Preferences set via Portal Admin

    I have a portlet which should read the preference values set in the portal admin by an administrator.
    I am running the portal as .portal and not in the streaming mode.
    After setting the values in the portal administration I always click on propogate to all instances. But when I run the portal in workshop in debugger mode it is not reading the values as stored in Portal admin but it is showing the values which were stored while creating the portlet in workshop in portlet designer.
    Please help how to make the portlet read the preference values stored via the portal admin console if the user visits the portal as an anonymous user. Any help is greatly appreciated on this subject. I have searched everywhere but have no solution.
    I am using Weblogic Platform 8.1 sp5
    Thanks
    rj

    The portlet preferences set in portal administration reflect only in streaming mode, since streaming mode uses the database that is used by portal administration. If you wish to see the portlet preferences set in portal adminstration, try running in streaming mode.
    But when you run portal from workshop ( which would be file mode), it wouldn't pickup portlet preferences created via portal administration.
    Note: The easiest way to distinguish a streaming mode from file mode is presence of 'appmanager' in URL.
    eg: http://localhost:7001/sampleportal/appmanager/MyPortal/desktop1
    Seenu.

  • How to change portlet preferences

    Can somebody tell me how can I change some prefrences that are defined in portlet.xml. So that if the user update this preferece it will be updated for all the portlet instances for that user. For example
    <preference>
    <name>Pref</name>
    <value>something</value>
    </preference>
    here the value is something for every instance of that portlet. However I want to know if there is any way that this could be modified at user level and when the user change it to somethingelse this value will show on every portlet instance for that specific user. In IBM websphere this can be done using the <config-param> tag instead of preference.

    Hi Neeraj,
    We have a requirement to set the portlet preferences for al the users.
    Based on the solution you gave, I set preference value in config mode and those preferences value are set for all the users.
    I succusfully implemented edit_config mode on Oracle Portal and I shared my code snippets at
    http://wsrp-jsr168.blogspot.com/
    I hope this is very helpful.
    --Somesh                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • How to retain portlet preferences when undeploying application

    Hi,
    we have a requirement where we configure portlet preferences for each portlet instance in a page through admin console.
    we use these preference values to retrieve content from VCR and display in portlet jsp.
    The problem here is when we undeploy application and install it again all the preferences configured in the admin console will vanish.
    Is there any way to retain these values even when we undeploy application.
    Thanks

    Hello,
    There are two ways you could do this: put the preference values in your .portlet files or use the propagation tool to move the customized portlet instances to your new deployment.
    Putting the preference values in your .portlet file can't be done from the administration tools-- it must be done from the IDE or manually editing the files-- so I'm guessing it would not solve your problem.
    For more information on using the propagation tool, see:
    http://download.oracle.com/docs/cd/E13155_01/wlp/docs103/prodOps/propTool.html
    Kevin

  • Store defaul portlet preferences

    Hi,
    I want to implement edit mode for my portlet, where only admins have access. On the edit page, I want to enable the admins to set the default portlet preferences (the same value for all users, not only for the current user)
    How can I best do this. We are using 8.1.5.
    I have tried to use the PreferencePersistenceManager looked up with PortalBeanManager (similar as in VisitorTools) but I got a NameNotFoundException
    Thanks

    Hi,
    Select-Option : MATNR type mara-matnr.
    Ranges : MATNR for MARA-MATNR.
    r_matnr = s_matnr.
    EXPORT R_MATNR to R_MATNR MEMORY ID 'ZID'.
    while retrieving
    IMPORT R_MATNR from R_MATNR MEMORY ID 'ZID'.
    else store it into a DB table of same structure.
    Best regards,
    Prashant

  • Portlet Preferences

    Hi,
    We are observing that when we set the portlet preferences from a JSP page which is included in the normal view of a portlet, the preferences are not saved. However, when we use the same code in a preference page, the settings are saved. Can any one please confirm the portlet preferences can only be saved from the preferences page?
    portletResponse.setSettingValue(SettingType.Admin,
    "tempVal", "hellooooo");
    Thanks.

    Hi there,
    From your snippet of code below, you are seting an administrative preference (SettingType.Admin) this would be set up on the object at the administrative level. You might try using a different type either SettingType.Portlet or SettingType.CommunityPortlet.

  • Modify portlet preferences programmatically

    Hi,
    I need to create a desktop programmatically and then change the value of a portlet preference in every portlet of the desktop I just created.
    I create my desktop like this :
    DesktopDefinition def = desktopDefinitionControl.createDesktopFromPortalFile("myAppWeb/test.portal", "VisitorDesktop", "Visitor description",
                             "myAppWeb", new PortalPath("portal"), new DesktopPath("visitorDesktop"), CustomizationContext.DISASSEMBLER_ACCEPT_TEMPLATE,
                             ResourceContext.createResourceContext(this.getRequest(), true));
    and it works fine. I now need to get all the portlets of this desktop and modify a specific portlet preference.
    Is there a way to get all the portlets from a desktop ??
    Thx for your help,
    Guillaume
    (I use Weblogic Portal 10.0)
    Edited by: gdahan on 13 nov. 2008 08:41

    Please repost this in the WebLogic Portal forum:
    WebLogic Portal

  • OMNI portlet preference store issue

    Hi,
    Application is running on Staging environment and I want to move it to UAT clustered environment. Portlet application as well consumer application (Portal) deployed successfully. After that I have run persistancemigration tool for WSRP portlet preferences and copy them to UAT. At this stage, my portal and WSRP/JSR portlet start running. After that i tried to run migration tool to export omni portlet preferences in following way:-
    1. I have set classpath for MigrationTool.
    2. Test the classpath as follow:-
    C:\>echo %classpath%
    .;D:\Program Files\J-Integra\Exchange\lib\jintegra.jar;D:\Program Files\J-Integr
    a\Exchange\lib\cdo.jar;.;D:\Program Files\J-Integra\Exchange\lib\jintegra.jar;D:
    \Program Files\J-Integra\Exchange\lib\cdo.jar;D:/OracleAS/OracleSOA/jdbc/lib/ojd
    bc14dms.jar; D:/OracleAS/OracleSOA/portal/jlib/pdkjava.jar; D:/OracleAS/OracleSO
    A/portal/jlib/ptlshare.jar;
    3. When i run the command its giving me ClassDefFoundErrro error:-
    C:\>java oracle.portal.provider.v2.preference.MigrationTool -mode filetofile -pr
    ef1UseHashing true -pref1RootDirectory D:/OracleAS/OracleSOA/portal/portletdata/
    tools/omniPortlet -pref2RootDirectory D:/temp/omni
    Exception in thread "main" java.lang.NoClassDefFoundError: oracle/portal/provide
    r/v2/preference/MigrationTool
    I have also run above command in this way but its also not worked for me:-
    set classpath=D:/OracleAS/OracleSOA/jdbc/lib/ojdbc14dms.jar; D:/OracleAS/OracleSOA/portal/jlib/pdkjava.jar; D:/OracleAS/OracleSOA/portal/jlib/ptlshare.jar
    java oracle.portal.provider.v2.preference.MigrationTool -mode filetofile -pref1UseHashing true -pref1RootDirectory D:/OracleAS/OracleSOA/portal/portletdata/tools/omniPortlet -pref2RootDirectory D:/temp/omni
    Kindly do let me know what is the issue?
    2ndly, i copied omni portlet preferences (without running above tool) and pasted in UAT environment, OC4J is throwing following exceptions when i called them from Portal:-
    HTTPClient.HTTPConnection
    java.lang.ClassCastException: HTTPClient.HTTPConnection
    at
    oracle.portlet.client.connection.web.WebProducerRuntimeAdapterImpl.doHttpClientCall(WebProducerRunti
    meAdapterImpl.java:402)
    at
    oracle.portlet.client.connection.web.WebProducerRuntimeAdapterImpl._showPortlet(WebProducerRuntimeAd
    apterImpl.java:188)
    at
    oracle.portlet.client.connection.web.WebProducerRuntimeAdapterImpl.showPortlet(WebProducerRuntimeAda
    pterImpl.java:156)
    at
    oracle.portlet.client.connection.web.WebProducerInteraction.showPortlet(WebProducerInteraction.java:
    130)
    at oracle.portlet.client.techimpl.web.WebPortletRenderPipe.pre(WebPortletRenderPipe.java:84)
    at oracle.portlet.client.service.pipeline.PipeContext.internalExecute2(PipeContext.java:519)
    at oracle.portlet.client.service.pipeline.PipeContext.internalExecute(PipeContext.java:406)
    at oracle.portlet.client.service.pipeline.PipeContextRunnable.run(PipeContextRunnable.java:23)
    at
    edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:431)
    at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
    at
    oracle.portlet.client.service.pipeline.ModifiedThreadPoolExecutor$Worker.runTask(ModifiedThreadPoolE
    xecutor.java:398)
    at
    oracle.portlet.client.service.pipeline.ModifiedThreadPoolExecutor$Worker.run(ModifiedThreadPoolExecu
    tor.java:423)
    at java.lang.Thread.run(Thread.java:595)
    I have also changed the connection.xml to point to some stagin server URL where these omni portlets are running but having same exception. What can be the issue?
    Thanks in advance.
    Regards,
    Imran

    This issue is related to the Shared library in th server.xml. I also had the same issue. the import for oracle.http.client shared library would be missing in your oracle.wsrp shared lib description.
    Update that and you will be free of this error

  • Portlet Preferences set by admin only

    Hi, I am trying to figure out how to allow an admin to set a portlet
    preference for a single instance of the portlet. In IBM and Jetspeed,
    this is possible.
    For example, I would like to deploy a weather portlet where the only
    preference is the zip code for the weather forecast. I don't want each
    user to personalize this, I only want to allow the portal admin to set
    the zip code and then have that used by all end users of the portlet.
    Is this possible in WebLogic?

    Hi Chad,
    The admin tools have a Portlet Preferences page in both the library and
    for each portlet instance in a portal desktop. I can see these pages in my
    test environment. Let me know if you have any problems when you try this
    stuff:
    "Java Portlets"
    "Java portlets are based on the JSR 168 specification ..."
    http://e-docs.bea.com/wlp/docs92/portlets/building.html#wp1061940
    "Managing Portlets Using the Administration Console"
    http://e-docs.bea.com/wlp/docs92/portlets/portlet_org.html#wp1007211
    "Overview of Portlet Preferences"
    http://e-docs.bea.com/wlp/docs92/portlets/portlet_org.html#wp1013151
    <Chad McGowan> wrote in message news:[email protected]..
    Excellent, thanks for the clarification.
    I've download version 9.2 of the portal server and I could not find a way
    to set portlet preferences in the admin console.
    Are there any tutorials or instructions on how to install and configure a
    third-party jsr-168 portlet in 9.2? I want to install the portlet, then
    set the preference from the admin console.
    Thanks for your help!

  • 168.portal MailViewer Portlet Preferences

    I'm trying execute the 168.portal - MailViwer Portlet smple to see how the preferences work with JSR 168. But I don't know how to login to view the output as I don't have any user name and passwords. Can anybody guide me on that? Also let me know if anybody can help in using the Preferences as I'm able to load the default preferences but cannot store the preferences with store() method. It gives me :-
    java.lang.UnsupportedOperationException: Can not persist preferences. No backing store configured or deployed, or this portal does not support customization.
    Any help in this regard would be highly appreciated!!

    I am having a same problem where the portlet preferences can not be stored. Did you figure out your problem? I am doing simple java portlet that stores personal information of 1 person than in edit mode I tried to change the information and it bombs
    public void processAction(ActionRequest actionRequest,
    ActionResponse actionResponse) throws PortletException, IOException{
    String pocRank = actionRequest.getParameter("pocRank");
    String pocName = actionRequest.getParameter("pocName");
    String pocEmail = actionRequest.getParameter("pocEmail");
    String pocPhone = actionRequest.getParameter("pocPhone");
    PortletPreferences pref = actionRequest.getPreferences();
    pref.setValue("pocRank", pocRank);
    pref.setValue("pocName", pocName);
    pref.setValue("pocEmail", pocEmail);
    pref.setValue("pocPhone", pocPhone);
    try{
    pref.store();
    catch(SecurityException se){
    System.out.println("Poc:" + se);
    catch(IOException ioe){
    System.out.println("POC: " + ioe);
    actionResponse.setPortletMode(PortletMode.VIEW);
    /////////////////////////JSP FILE///////////////////////
    <%@ page language="java" contentType="text/html;charset=UTF-8"%>
    <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
    <%@ page import="javax.portlet.PortletPreferences"%>
    <head>
    <title> Web Application Page </title>
    </head>
    <portlet:defineObjects />
    <%
    PortletPreferences prefs = renderRequest.getPreferences();
    String pocRank = prefs.getValue("pocRank", "pocRank");
    String pocName = prefs.getValue("pocName", "pocName");
    String pocEmail = prefs.getValue("pocEmail", "pocEmail");
    String pocPhone = prefs.getValue("pocPhone", "pocPhone");
    %>
    <body>
    <form method=POST action="<portlet:actionURL/>">
    <table border="1">
    <tr>
    <td>  JPRSP POC </td>
    </tr>
    <tr>
    <td>Rank  </td>
    <td>
    <input name="pocRank" value=""/>
    </td>
    </tr>
    <tr>
    <td>Name  </td>
    <td><input name="pocName" value=""/></td>
    </tr>
    <tr>
    <td>Email  </td>
    <td><input name="pocEmail" value=""/></td>
    </tr>
    <tr>
    <td>Phone  </td>
    <td><input name="pocPhone" value=""/></td>
    </tr>
    <tr valign="middle" align="center">
    <td><input type="reset" name="Save" align="middle"><td>
    <input type="submit" name="Save" align="middle"></tr>
    </table>
    </form>
    </body>

  • Portlet Preferences - Any way to define templates or bulk load ?

    Hi,
    I have a question regarding portlet preferences. We have need to store metadata
    about a portlet and this metadata is the same for all portlets inside the portlet.
    As we will have in excess of 300 portlets which is expected to rise to around
    2000 - 3000 in the future, it will be incredibly tedious for the portal admin
    to create the preferences for each one (for such items as portlet owner, portlet
    administrator etc)
    Is there a template facility (a bit like user profiles) where we can set up the
    definition with fields and values etc, and apply to a portlet. Or failing that
    a bulk load capability where we can just populate the DB using the portlet_definition_id
    or portlet_instance_id in the preference tables ?
    We are on SP2 by the way.
    TIA
    Martin

    Thanks Subbu,
    That worked.....can you keep us updated on any movement with the SPI as this is
    something that of us very definite importance to us.....
    Thanks for the quick response
    Martin
    Subbu Allamaraju <[email protected]> wrote:
    Martin,
    For some reason in Workshop i dont seem to be able to add preferencesto the portlet
    i am creating. For example i create a JSP and then right click 'GeneratePortlet'
    and it creates me the .portlet file. But when i try to access the preferences
    menu it just gives me 'Remove' and the list is empty. It does not offerthe 'Create'
    Option. I must be missing somethingTry dragging "Preference" from the palette.
    Also even if we could do it at create time in workshop these will bethe same
    for all portlets in the Portal and thus this would need to be doneevery time
    manually and that would leave room for mistakes and people missingfields etc.
    We are looking at a very large number of portlets...
    What would be really nice is to define a 'preferences' property setas user profile
    etc and then
    just apply it...thus not leaving room for errors etc.....
    At this time, the API does not support this scenario. We're considering
    an SPI for a future release, and we'll make sure this scenario gets
    addressed.
    Subbu
    Any thoughts.....?
    Subbu Allamaraju <[email protected]> wrote:
    Martin,
    Have you considered specifying preferences for each portlet while
    creating the portlet in WLW? The recommended approach is to create
    preferences while creating the portlet as the portlet developer ismore
    likely to know what preferences are required and the implications.If
    the default values entered by the portlet developer are meaningful,
    portal admins won't have to change these values.
    Subbu
    Martin Porter said the following on 12/17/2003 07:12 AM:
    Hi,
    I have a question regarding portlet preferences. We have need to storemetadata
    about a portlet and this metadata is the same for all portlets insidethe portlet.
    As we will have in excess of 300 portlets which is expected to riseto around
    2000 - 3000 in the future, it will be incredibly tedious for the portaladmin
    to create the preferences for each one (for such items as portlet
    owner,
    portlet
    administrator etc)
    Is there a template facility (a bit like user profiles) where we canset up the
    definition with fields and values etc, and apply to a portlet. Or
    failing
    that
    a bulk load capability where we can just populate the DB using theportlet_definition_id
    or portlet_instance_id in the preference tables ?
    We are on SP2 by the way.
    TIA
    Martin

  • Portlet Preference

    I have a community that has 2 pages, each having an instance of a portlet i created. I want to give these portlet instances 2 distinct preferences, so i used the portlet preferences to do it. However, if i set the portlet preference of a portlet instance, say on page A, and i check on page B, the portlet instance on page B detects the preferences that i set on page A and applies it to itself.
    Is there a way that i could set distinct preference settings on these two pages having the instances of one portlet? How will i do it?

    I ran a simple test. I put the following line of code in a JSP and pointed a portlet at it:
    PortletContextFactory.createPortletContext.setSettingValue(SettingType.Portlet, "foo", "bar");
    I put this portlet in three places:
    1) A MyPage
    2) A Community (id 234)
    3) Another Community (id 235)
    When I looked in the database in the PTPREFS table, I was really surprised by what I saw. It created three rows as follows:
    PREFNAME PREFVALUE PREFOBJECTID PREFCLASSID
    foo      bar       0            0
    foo      bar       234          512
    foo      bar       235          512Prior to G6, if my memory serves me correctly, a portlet pref could be set on one community and read on another. I'm not as certain about this point, but I think it could also be set on a MyPage and read on a community (and vice versa).
    If you wanted page-specific or community-specific portlet preferences, you could always append the page id or community id to the pref name. However, following this undocumented design change, there's no way AFAIK to remove the new community-specific nature of portlet prefs.
    Bug or feature? Hard to say. I'd like to get the official word from BEA on whether this was intentional or not and either way, could somebody please update the documentation ? If there's been a major change in the design of the pref model, there ought to be at least a little documentation on it.
    Chris Bucchere | bdg | [email protected] | http://www.thebdgway.com
    Edited by bucchere at 02/12/2007 8:47 PM

  • Sharing portlet preferences among users

    Hello,
    Is it possible to share portlet preferences among users? So that the
    portlet preferences would be stored per portlet instance, and would be
    the same for every user?
    If this is not possible with Java portlets (JSR-168), can it be done
    with other portlet types (JSP portlet, page flow portlet), using the
    PortletPreferences API?
    The JSR-168 specification says:
    "Portlet Specification assumes preference attributes are user specific,
    it does not make any provision at API level or at semantic level for
    sharing preference attributes among users. If a portal/portlet-container
    implementation provides an extension mechanism for sharing preference
    attributes, it should be well documented how the sharing of preference
    attributes works."

    Betsy,
    Does WLP provide a way to allow a user to store only a subset of all
    his portlet preferences (using only JSR 168 api) ?
    My aim is to try to create a JSR 168 compliant portlet where few of
    the preferences are allowed to modified by the user (in the edit
    mode), while all other preferences may be modified only by a portal
    admin (thru admin view). However, the PortletPreferences.store()
    method seems to store values of all current preferences for the
    particular user, with the result that future changes by the admin are
    not reflected for any user who has already customized his
    preferences.You can let the admin propagate changes to the user via admin tools.
    There is an option in admin tools to do that.
    Setting the preference <read-only> attribute to 'true' does not help
    either, as the store method still attempts to store the value and
    then throws a ReadOnlyException.In this case, the setValue/setValues/reset and not the store will throw
    the ReadOnlyException.
    Why does WLP attempt to store all preference values; as opposed to
    setting only those which have been explicitly set using
    PortletPreferences.setValue(key, value)?The implementation does not keep track of changes explicitly in memory.
    Even if it keeps track of changes, I'm not sure if this would solve your
    use case.
    Will BEA be changing this in future releases, and is there a
    work-around for now?The suggested approach is to let admins propagate changes to users.
    Subbu
    >
    Thanks, Betsy
    Although WLP does not support the notion of sharing preferences,
    WLP lets you manage preferences in a hierarchy via the admin tools.
    When an admin sets preferences on a portlet, as long as users don't
    customize their portlets, all users get the same portlet instances,
    and hence share preferences.
    Subbu
    Bob said the following on 02/12/2004 04:08 AM:
    Hello,
    Is it possible to share portlet preferences amongusers? So that the
    portlet preferences would be stored per portletinstance, and would be
    the same for every user?
    If this is not possible with Java portlets(JSR-168), can it be done
    with other portlet types (JSP portlet, page flowportlet), using the
    PortletPreferences API?
    The JSR-168 specification says:
    "Portlet Specification assumes preferenceattributes are user specific,
    it does not make any provision at API level or atsemantic level for
    sharing preference attributes among users. If aportal/portlet-container
    implementation provides an extension mechanism forsharing preference
    attributes, it should be well documented how thesharing of preference
    attributes works."

  • Portlet preferences reset on boot

    Hi,
    When I am using portlet preferences, and set their value in the
    Administration portal, these values seems to be reset to their default
    values upon reboot. Is this intentional or a bug?
    /Steen

    Thanks, that did the trick.
    Subbu Allamaraju wrote:
    Steen,
    Please make sure that propagate-to-instances is set to false in
    netuix-config.xml. See the example below.
    <customization>
    <enable>true</enable>
    <propagate-preferences-on-deploy propagate-to-instances="false"/>
    <reload-database-on-redeploy reload="false"/>
    </customization>
    Subbu
    Steen Larsen wrote:
    Hi,
    When I am using portlet preferences, and set their value in the
    Administration portal, these values seems to be reset to their default
    values upon reboot. Is this intentional or a bug?
    /Steen

Maybe you are looking for