[solved] Telling dwm to use a custom dmenu

I run a customized version of dwm from my home directory, in ~/build/dwm, which I maintain a git repository. I'd like to do the same thing with dmenu, but if I don't have dmenu installed anywhere else on my system (I haven't installed it as root), how will dwm know to use the version of dmenu in ~/build/dmenu ? As long as ~/build/dmenu/ is in my path, dwm should find the binary, correct?
Last edited by pythonscript (2013-11-01 00:54:20)

jasonwryan wrote:Why are you trying to export your PATH from .xinitrc?
I must be reading the wiki incorrectly. The page/section I linked to says:
Scripts in $PATH not loaded
This happens because dmenu doesn't inherit environment set in ~/.bashrc. To fix this, put the export line in .xinitrc:
    export PATH=$PATH:~/bin/:~/scripts/
Delete ~/.cache/dmenu_cache and restart X.
Am I reading that incorrectly? I deleted both ~/.dmenu_cache and ~/.cache/dmenu_run, and still no luck.
Last edited by pythonscript (2013-10-31 02:46:36)

Similar Messages

  • Facing problem to Use a custom Java class in UCCX

    /* Style Definitions */
    table.MsoNormalTable
    {mso-style-name:"Table Normal";
    mso-tstyle-rowband-size:0;
    mso-tstyle-colband-size:0;
    mso-style-noshow:yes;
    mso-style-priority:99;
    mso-style-qformat:yes;
    mso-style-parent:"";
    mso-padding-alt:0in 5.4pt 0in 5.4pt;
    mso-para-margin-top:0in;
    mso-para-margin-right:0in;
    mso-para-margin-bottom:10.0pt;
    mso-para-margin-left:0in;
    line-height:115%;
    mso-pagination:widow-orphan;
    font-size:11.0pt;
    font-family:"Calibri","sans-serif";
    mso-ascii-font-family:Calibri;
    mso-ascii-theme-font:minor-latin;
    mso-hansi-font-family:Calibri;
    mso-hansi-theme-font:minor-latin;}
    Hi,
    We are using Communication manager 7.0.1 and UCCX version 7.0.1(Cisco Unified CCX Premium).  We are trying to call a Custom Java class file from UCCX scripting. We have followed the steps mentioned in the guide (How-To: Using a custom Java class in UCCX 5.x (SOAP Example)). See below link.
    http://www.avholloway.com/vtools/ipcc/custom-java/soap/
    After completed all the steps we have got the variable type SimpleSOAP at script but we did not found it to object constructors or object attributes (plz find the attached screenshots). We will appreciate if you plz guide us to solve the issue.
    Thanks
    Fakhrul
    LEADS Corporation Ltd.

    Hello, Fakhrul.
    I'm sorry to see you were not able to find the information or help you were looking for here in the Contact Center community forum.
    You may be able to find more help through the Cisco Developer Network.
    Also, you might want to consider engaging Cisco Advanced Services via your account team to assist with UCCX custom scripting.
    Thank you, and good luck.
    -Paulo

  • How to use a custom comparator in a TableSorter?

    Hi,
    I want to use a custom comparator for sorting a table by a specific column.
    As you possibly know, the constructor for the TableSorter class looks like this:
    TableSorter(IWDTable table, IWDAction sortAction, Map comparators);
    As Map is an Interface I chose Hashmap as comparator container. So, I use the put(Key, Value) method to insert my own comparator into the Hashmap in order to deliver this Object to the TableSorter constructor.
    But there is an essential problem:
    I assume, that the column which is to be associated with my comparator is determined by the key of the Map object from the TableSorter constructor.
    Presuming this, <u>what should the map key be/look like?</u>
    An Integer counted from the columns? The column header as String? Whatever? Or am I on the wrong way?
    PS:
    Hours of search did not lead me to some kind of documentation or javadoc of the TableSorter class! This can't be, does someone have a link please?
    Thanks a lot for any help.

    (sorry Mrutyun, this did not help.)
    Ok, I solved it; let me share it with you:
    public class ExampleView
            public static void wdDoModifyView(IPrivateExampleView wdThis, IPrivateExampleView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
                     * A custom Comparator class is used for sorting by Severity.
                     * An Object of it is delivered to an object of a Map class to be delivered to the TableSorter constructor.
                     * The Map class consists of key-value pairs, and the TableSorter must accept the Key of it
                     * because he uses it to assign the mapped Comparator to the column of the table to be sorted!
                     * And this is done with the ID of the Element, which shall be sorted with the Comparator, used as Map Key.
                     * All other columns of the assigned tables will be sorted by default Comparators.
                    IWDTable table = (IWDTable) view.getElement("[TableName]");
                    HashMap tableComps = new HashMap();
                    tableComps.put(view.getElement("[ColumnName]").getId(), new MyComp(wdContext.currentExampleElement())); //The map key value I looked for is the ID of the Element of the Column!
                    wdContext.current/*yourContextNode*/Element().setTableSort(
                            new TableSorter(table, wdThis.wdGetSortTableRowAction(),
                                    tableComps)); //Insert HashMap with the new Comparator
            public void onActionSortTableRow(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
            //@@begin onActionSortTableRow(ServerEvent)
                            wdContext.currentConfigurationElement().getTableSort().sort(wdEvent, wdContext.nodeOpenIncident());
            //@@end
    As you see, the Column which is to be sorted by the custom Comparator "MyComp", is clearly assigned to it. Thus, is will only be used when sorting by this column is done.
    The "inActionSort" method is as usual.
    My Comparator sorts a column which contains variables of a "SimpleType" with an enumeration. (If you need help with this, feel free to write me.) To achieve this, the Comparator needs to know what this SimpleType consists of. That's why I deliver this Element per Constructor to it.
    public class MyComp implements Comparator
         MappedNodeElement element;
         public SeverityComp(I/*one*/Element element)
              this.element = element;
         public SeverityComp(I/*another*/Element element)
              this.element = element;
         public int compare(Object severity1, Object severity2)
    Because MappedNodeElement is such abstract, it can be used by several different Tables, provided they use the same SimpleType.
    Concerning my quest for this resolution, I hope this is helpful.
    null

  • Using a custom tag with a 2.3 servlet descriptor BUG?

    Hi,
    I just developed a Custom Tag and I'd like to use in my jsps.
    If I add the jsp in my JDev project with the custom tag when I try to build the project I got this error:
    Error(11): oracle.xml.parser.v2.XMLParseException: Invalid element 'listener' in content of 'web-app', expected elements '[context-param, servlet, servlet-mapping, session-config, mime-mapping, welcome-file-list, error-page, taglib, resource-ref, security-constraint, login-config, security-role, env-entry, ejb-ref]'.
    It seems like when the jsp parser encounters the line with taglib it tries to parse the web.xml against a 2.2 version of the dtd. My web.xml begins with the correct dtd version (2.3). Can anyone tell me if this is a bug and eventually tell me how to solve it?
    thanks,
    Giovanni

    I repost this issue again, now with a simple test case.
    If I wrote a simple custom tag:
    import java.io.IOException;
    import javax.servlet.jsp.tagext.TagSupport;
    public class MyCustomTag extends TagSupport {
    public int doStartTag() {
    try {
    pageContext.getOut().print("FOO");
    } catch (IOException ioe) {
    pageContext.getServletContext().log(ioe.getMessage(),ioe);
    return(SKIP_BODY);
    with the associated tld:
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.2</jspversion>
    <shortname>try</shortname>
    <uri>try</uri>
    <info>A short description...</info>
    <tag>
    <name>mytag</name>
    <tagclass>MyCustomTag</tagclass>
    <bodycontent>EMPTY</bodycontent>
    </tag>
    </taglib>
    and a jsp using the custom tag:
    <%@ page contentType="text/html;charset=windows-1252"%>
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
    <TITLE>
    Hello World
    </TITLE>
    </HEAD>
    <BODY>
    <H2>
    The current time is:
    </H2>
    <P>
    <% out.println((new java.util.Date()).toString()); %>
    <%@ taglib uri="try.tld" prefix="try" %>
    <try:mytag />
    </P>
    </BODY>
    </HTML>
    all runs fine if I have a web.xml with the dtd version 2.2
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app>
    <description>Empty web.xml file for Web Application</description>
    <session-config>
    <session-timeout>30</session-timeout>
    </session-config>
    <mime-mapping>
    <extension>html</extension>
    <mime-type>text/html</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>txt</extension>
    <mime-type>text/plain</mime-type>
    </mime-mapping>
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    </web-app>
    but if I use the version 2.3 because I want filters,context listeners and so on:
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
    <web-app>
    <description>Empty web.xml file for Web Application</description>
    <filter>
    <filter-name>FilterRedirector</filter-name>
    <filter-class>org.apache.cactus.server.FilterTestRedirector</filter-class>
    </filter>
    <!-- Filter Redirector URL mapping -->
    <filter-mapping>
    <filter-name>FilterRedirector</filter-name>
    <url-pattern>/FilterRedirector/</url-pattern>
    </filter-mapping>
    <session-config>
    <session-timeout>30</session-timeout>
    </session-config>
    <mime-mapping>
    <extension>html</extension>
    <mime-type>text/html</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>txt</extension>
    <mime-type>text/plain</mime-type>
    </mime-mapping>
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    </web-app>
    I get the error I report in my last post. (the jsp doesn't compile) If I remove the custom tag from my jsp all works fine (filters, listeners,etc). In my project settings I use the 2.3 version of servlet.jar instead of the ServletRuntime that comes with JDeveloper.
    Can anyone tell me how to resolve this issue (Using simple custom tag with a web application using the 2.3 servlet specs)?
    Thanks in advance,
    Giovanni
    If I remove the filter secion all

  • Use of Custom Files in Veristand

    Hello All,
       Haven't been able to find much documentation related to use of "Custom Files" in Veristand.  Would like to know of any examples of file types users have implemented.  Specifically, I would like to know if you can "call" certain file types from the models or custom devices (i.e. for configuration parameters or databases). 
    Thanks much,
    GSinMN  
    Solved!
    Go to Solution.

    Howdy GSinMN,
    There is a bit of documentation in the VeriStand Help that discusses Custom Files specifically.
    Adding Custom Files
    http://zone.ni.com/reference/en-XX/help/372846D-01/veristand/add_custom_files/
    Although, the help doesn't quite reveal the full capabilities of this feature. There are two distinct use cases I have been able to identify for the Custom Files option in VeriStand. I will list them out in more detail and show you an example.
    Making Files easily accessible to the Operator in the development environment.
    When a file is added into the Custom Files section of the Project it will have its own icon in the project and will be included in the project dependencies. Having the file brought to view in the project is helpful if there is a troubleshooting image or specific document (calibration specs, steps for running a test, etc) that you would like your Operator to have access to. For example, in the example project I've included, there is a file added called "TestA1_PreTestSetup.txt". From the project (on the toolbar) the Operator has the option to "Open File" (to view it) or "Export..." to investigate its path on the operator machine.
    Please note that the file is also now added to the dependencies of the project.
    If you begin to investigate the file in the project and lets say you right-click on it and notice that there is a Properties option. You may notice that the Description for this file is empty. This can actually be populated being modifying the XML source of the .nivsproj. This also leads into the second use case for Custom Files.
    Transferring files to the RT target which can be used by the VeriStand Engine.
    If you were to investigate the .nivsproj XML you could first find the Custom Files section, and then the tags for the item you configured.
    Here are the relevant tags and a break down,
    <DependentFile> - This points to the source of the custom file. In this circumstance, I have added the file to the "C:\Users\Public\Documents\National Instruments\NI VeriStand 2011\Test Procedures" directory. It is able to resolve the the first component to "To Common Doc Dir" because this is the common directory for VeriStand, and then it appends the Test Procedures folder and name of the file that I created.
    <Description> - Populating this tag gives us the ability to fill in the description information that occurs when we right click the file in the project.
    <RTDestination> - Populating this tag gives you the ability to also send the File to the target upon deployment. Your VeriStand engine could then access this file during operation. As far as which types of files to use, the link in the post above should help guide that.
    Please Note: Modifying the XML of the project gives you added customization and functionality to your project but these modifications should not be done heedlessly. Incorrectly modifying the tags in the XML file can lead to improper performance and outcomes. So tread carefully and make only minor changes at a time.
    I hope this helps. Have a great day, GSinMN
    Tim A.
    National Instruments
    Attachments:
    Custom Files Example.zip ‏10 KB
    TestA1_PreTestSetup.txt ‏1 KB

  • Re: Using ScopeCache custom tag

    Hi, I am quite new to ColdFusion and I have a calendar that
    is quite slow due to the cfloops it uses to build the calendar. As
    the page does not change very often I wanted to use Raymond
    Camden's ScopeCache custom tag. However, for some reason the custom
    tag was not getting picked up from the custom tag folder on the
    server. I have successfully used components so have tried to
    convert the custom tag to a component but get the following error
    message:
    Routines cannot be declared more than once.
    The routine scope_Cache has been declared twice in the same
    file.
    This is the component:
    <!---
    Name : scopeCache
    Author : Raymond Camden ([email protected])
    Created : December 12, 2002
    Last Updated : November 6, 2003
    History : Allow for clearAll (rkc 11/6/03)
    : Added dependancies, timeout, other misc changes (rkc
    1/8/04)
    Purpose : Allows you to cache content in various scopes.
    Documentation:
    This tag allows you to cache content and data in various RAM
    based scopes.
    The tag takes the following attributes:
    name/cachename: The name of the data. (required)
    scope: The scope where cached data will reside. Must be
    either session,
    application, or server. (required)
    timeout: When the cache will timeout. By default, the year
    3999 (i.e., never).
    Value must be either a date/time stamp or a number
    representing the
    number of seconds until the timeout is reached. (optional)
    dependancies: This allows you to mark other cache items as
    dependant on this item.
    When this item is cleared or timesout, any child will also
    be cleared.
    Also, any children of those children will also be cleared.
    (optional)
    clear: If passed and if true, will clear out the cached
    item. Note that
    this option will NOT recreate the cache. In other words, the
    rest of
    the tag isn't run (well, mostly, but don't worry).
    clearAll: Removes all data from this scope. Exits the tag
    immidiately.
    disabled: Allows for a quick exit out of the tag. How would
    this be used? You can
    imagine using disabled="#request.disabled#" to allow for a
    quick way to
    turn on/off caching for the entire site. Of course, all
    calls to the tag
    would have to use the same value.
    License : Use this as you will. If you enjoy it and it helps
    your application,
    consider sending me something from my Amazon wish list:
    http://www.amazon.com/o/registry/2TCL1D08EZEYE
    --->
    <cfcomponent>
    <cffunction name="scope_Cache" access="public"
    returntype="string">
    <cfargument name="cachename" type="string"
    required="yes">
    <cfargument name="scope" type="string" required="yes">
    <cfargument name="timeout" type="string"
    required="yes">
    <cfprocessingdirective pageencoding="utf-8">
    <!--- allow for quick exit
    <cfif isDefined("arguments.disabled") and
    arguments.disabled>
    <cfexit method="exitTemplate">
    </cfif>
    <!--- Allow for cachename in case we use cfmodule --->
    <cfif isDefined("arguments.cachename")>
    <cfset arguments.name = arguments.cachename>
    </cfif>--->
    <!--- Attribute validation --->
    <cfif (not isDefined("arguments.name") or not
    isSimpleValue(arguments.name)) and not
    isDefined("arguments.clearall")>
    <cfthrow message="scopeCache: The name attribute must be
    passed as a string.">
    </cfif>
    <cfif not isDefined("arguments.scope") or not
    isSimpleValue(arguments.scope) or not
    listFindNoCase("application,session,server",arguments.scope)>
    <cfthrow message="scopeCache: The scope attribute must be
    passed as one of: application, session, or server.">
    </cfif>
    <!--- The default timeout is no timeout, so we use the
    year 3999. --->
    <cfparam name="arguments.timeout"
    default="#createDate(3999,1,1)#">
    <!--- Default dependancy list --->
    <cfparam name="arguments.dependancies" default=""
    type="string">
    <cfif not isDate(arguments.timeout) and (not
    isNumeric(arguments.timeout) or arguments.timeout lte 0)>
    <cfthrow message="scopeCache: The timeout attribute must
    be either a date/time or a number greather zero.">
    <cfelseif isNumeric(arguments.timeout)>
    <!--- convert seconds to a time --->
    <cfset arguments.timeout =
    dateAdd("s",arguments.timeout,now())>
    </cfif>
    <!--- create pointer to scope --->
    <cfset ptr = structGet(arguments.scope)>
    <!--- init cache root --->
    <cfif not structKeyExists(ptr,"scopeCache")>
    <cfset ptr["scopeCache"] = structNew()>
    </cfif>
    <cfif isDefined("arguments.clearAll")>
    <cfset structClear(ptr["scopeCache"])>
    <cfexit method="exitTag">
    </cfif>
    <!--- This variable will store all the guys we need to
    update --->
    <cfset cleanup = "">
    <!--- This variable determines if we run the caching.
    This is used when we clear a cache --->
    <cfset dontRun = false>
    <cfif isDefined("arguments.clear") and arguments.clear
    and structKeyExists(ptr.scopeCache,arguments.name) and
    thisTag.executionMode is "start">
    <cfif
    structKeyExists(ptr.scopeCache[arguments.name],"dependancies")>
    <cfset cleanup =
    ptr.scopeCache[arguments.name].dependancies>
    </cfif>
    <cfset structDelete(ptr.scopeCache,arguments.name)>
    <cfset dontRun = true>
    </cfif>
    <cfif not dontRun>
    <cfif thisTag.executionMode is "start">
    <!--- determine if we have the info in cache already
    --->
    <cfif structKeyExists(ptr.scopeCache,arguments.name)>
    <cfif
    dateCompare(now(),ptr.scopeCache[arguments.name].timeout) is -1>
    <cfif not isDefined("arguments.r_Data")>
    <cfoutput>#ptr.scopeCache[arguments.name].value#</cfoutput>
    <cfelse>
    <cfset caller[arguments.r_Data] =
    ptr.scopeCache[arguments.name].value>
    </cfif>
    <cfexit>
    </cfif>
    </cfif>
    <cfelse>
    <!--- It is possible I'm here because I'm refreshing. If
    so, check my dependancies --->
    <cfif structKeyExists(ptr.scopeCache,arguments.name) and
    structKeyExists(ptr.scopeCache[arguments.name],"dependancies")>
    <cfif
    structKeyExists(ptr.scopeCache[arguments.name],"dependancies")>
    <cfset cleanup = listAppend(cleanup,
    ptr.scopeCache[arguments.name].dependancies)>
    </cfif>
    </cfif>
    <cfset ptr.scopeCache[arguments.name] = structNew()>
    <cfif not isDefined("arguments.data")>
    <cfset ptr.scopeCache[arguments.name].value =
    thistag.generatedcontent>
    <cfelse>
    <cfset ptr.scopeCache[arguments.name].value =
    arguments.data>
    </cfif>
    <cfset ptr.scopeCache[arguments.name].timeout =
    arguments.timeout>
    <cfset ptr.scopeCache[arguments.name].dependancies =
    arguments.dependancies>
    <cfif isDefined("arguments.r_Data")>
    <cfset caller[arguments.r_Data] =
    ptr.scopeCache[arguments.name].value>
    </cfif>
    </cfif>
    </cfif>
    <!--- Do I need to clean up? --->
    <cfset z = 1>
    <cfloop condition="listLen(cleanup)">
    <cfset z = z+1><cfif z gt 100><cfthrow
    message="ack"></cfif>
    <cfset toKill = listFirst(cleanup)>
    <cfset cleanUp = listRest(cleanup)>
    <cfif structKeyExists(ptr.scopeCache, toKill)>
    <cfloop index="item"
    list="#ptr.scopeCache[toKill].dependancies#">
    <cfif not listFindNoCase(cleanup, item)>
    <cfset cleanup = listAppend(cleanup, item)>
    </cfif>
    </cfloop>
    <cfset structDelete(ptr.scopeCache,toKill)>
    </cfif>
    </cfloop>
    <cfreturn scope_Cache>
    </cffunction>
    </cfcomponent>

    Hi, thanks to both of you for your help. I reverted back the
    custom tag and it was picked up this time - I don't know what
    happened before. The functionality works as expected but I have hit
    another problem and I am hoping I can tap your combined ColdFusion
    wisdom to solve!!
    The calendar returns leave records for staff and filters the
    records using a querystring variable appended when the user clicks
    on a particular month. However, what members of staff the user sees
    depends on the data held in the users' session variables based on
    their authority. The reason I wanted to use caching is because the
    page takes a good ten seconds to run because of the use of cfloops
    for the members of staff and the days of the week to dynamically
    build the page. Using the custom tag would have worked if all
    members of staff saw the same calendar data and could only see one
    month. Can you see anyway I can speed up the page and do you think
    caching is the way forward here?

  • How do I use a custom UserInfo with a T3Client?

    This is related to my previous post, 4655. The problem is I if
    use a custom implementation of the interface
    weblogic.security.acl.UserInfo in a T3Client constructor, the
    client fails to connect. If I use
    weblogic.security.acl.DefaultUserInfoImpl, the client connects
    and disconnects without any problems. How do I use a custom
    UserInfo implementation with a T3Client?

    In don't know about the Gmail part, but for the Hotmail, try this link.
    Here's another link from a different source.

  • Error message: The preset used by one or more sequences in this project requires third-party components that could not be located. These sequences will be modified to use a custom sequence setting instead. To continue editing using the original preset, qu

    Hello all,
    I can't open a PP project without this error message appearing:
    "The preset used by one or more sequences in this project requires third-party components that could not be located. These sequences will be modified to use a custom sequence setting instead. To continue editing using the original preset, quit the application without saving the project, reinstall any third-party components that are required and reopen the project".
    What I had been doing before this occurred was editing a PP project using ProRes sequences and multi-camera editing. Multi-camera was not working very well and after a few attempts to fix that I gave up and finished the job cutting 3 layers of video instead. AME refused to render the three finished sequences of over 1hr duration so rendered final videos from the PP sequences.
    I tried deleting plists for AME, PP and QT, repairing disc permissions and rebooting but there was no improvement.
    Client is satisfied for now but will want to come back to this job at a later date so decided to uninstall and re-install AME and PP in the hope both would be ready to work properly when needed again. AME works fine in conjunction with a different PP project but now I can't open the PP project in question without the above error message appearing.
    Having searched the net it would seem that the problem may be caused by ProRes but I haven't been able to find a definitive solution for the problem. Does anyone know either:
    1. How to fix this?
    2. If I chose the "modified using a custom sequence setting", can I be sure that my sequences will look the same even if they don't use ProRes? The final deliverable format will be mp4 so as long as the overall look doesn't change then I can  afford a change in the edit codec. It's just that with three sequences over an hour long, I don't want days of work to be ruined.
    Other older PP projects of mine open and work fine.
    Premiere Pro CC 8.2.0
    Media Encoder CC 8.2.0.54
    OSX 10.10.2
    Any help would be greatly appreciated.
    Duncan.

    Adobe web chat come up with a solution.
    Open the PP project.
    Export your sequence or project as a Final Cut Pro XML file.
    Set up a new PP project.
    Import the Final Cut Pro XML file.
    This will get you back up an running.
    Since getting back to editing this project I have found that some things will be lost or change in using XML:
    You will lose position key framing, black video clips, dissolve fx, audio levels, audio dynamic fx, the ability to open a multi camera clip and change the camera view.
    You will keep cut points, crop fx.
    Not perfect but only took a couple of hours to save 3 days work.

  • How to use a custom KeyManager in nonblocking SSLSocketChannel

    In our existing project I had to replace the nonblocking SocketChannel by nonblocking SSLSocketChannel. My implementation of the nonblocking SSLSocketChannel hides all the SSL stuff and can be used like a SocketChannel in the whole project you just have to use the SSLSocketChannelProvider instead of SocketChannelProvider in one place.
    Now I have a new requirement . Different server-certificate should be used for different IP-Addresses on the same SSLServerSocket. The relationship between IPs and certificates is well-know. The first idea was to use a custom KeyManagerDelegate which extends X509ExtendedKeyManager to choose the server certificate. The KeyManagerDelegate should delegate the calls to a KeyManager obtained by
    KeyManagerFactory.getInstance("NewSunX509").getKeyManagers();This works if I use a blocking SSLServerSocket obtained by SSLContext.getServerSocketFactory().createServerSocket();
    But the KeyManagerDelegate is never called by the SSLContext if I use my own nonblocking SSLServerSocketChannel. Instead of calling my KeyManagerDelegate the SSLEngineImpl throws an Exception
    javax.net.ssl.SSLHandshakeException: no cipher suites in common
         at com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(Handshaker.java:951)
         at com.sun.net.ssl.internal.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:466)
         at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1092)
         at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1064)
         at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:452) The next thing I’m going to try would be to get the SSLContext to use my own SSLSocketChannelProvider as ServerSocketFactory.
    Or I use different SSLContext for each incoming connection, which would break my clean design as the server had to mess around with building new SSLContext. Another possibility is to implement a callback in the ServerSocketChannel to get a new SSLContext for each accepted connection. This would safe my design but looks like an ugly workaround to me and I'm not sure yet if it works.
    Any better ideas?
    Thanks Domi

    Thank you for your response.
    At the moment I try this in my unit-test (this is the working blocking code)
    final KeyManagerFactory kmf = KeyManagerFactory.getInstance("NewSunX509");
    final KeyStore ks = KeyStore.getInstance("JKS");
    ks.load(new FileInputStream(System.getProperty("javax.net.ssl.keyStore")), password);
    kmf.init(ks, password);
    final KeyManager[] km = kmf.getKeyManagers();
    final SecureRandom random = new SecureRandom();
    context.init(new KeyManager[]                                                                   //TrustManager not shown here
             {new KeyManagerDelegate((X509KeyManager) km[0])}, tmf.getTrustManagers(), random);
    final ServerSocket serverSocket = context.getServerSocketFactory().createServerSocket();
    serverSocket.accept();The KeyManagerDelegate just delegates all calls to the underlying KeyManager (shown at the end)
    or (not working)
    final KeyManagerFactory kmf = KeyManagerFactory.getInstance("NewSunX509");
    final KeyStore ks = KeyStore.getInstance("JKS");
    ks.load(new FileInputStream(System.getProperty("javax.net.ssl.keyStore")), password);
    kmf.init(ks, password);
    final KeyManager[] km = kmf.getKeyManagers();
    final SecureRandom random = new SecureRandom();
    context.init(new KeyManager[]                                                      //TrustManager not shown here
             {new KeyManagerDelegate((X509KeyManager) km[0])}, tmf.getTrustManagers(), random);
    provider = SSLSelectorProvider.provider(context);                             //My SSLProvider
    final ServerSocketChannel ssc = provider.openServerSocketChannel();  // My SSLServerSocketChannel
    final SSLSelector sel = provider.openSelector();
    ssc.register(sel, SelectionKey.OP_ACCEPT, new AcceptHandler());the SSLEngine is created by the SSLSocketChannel resulting from the accept in the SSLServerSocketChannel. It uses the same SSLContext as the provider, but here the KeyManagerDelegate is never called.
    Or what do you mean by associated, did I miss your point?
       private static class KeyManagerDelegate
          extends X509ExtendedKeyManager
          private final X509KeyManager _manager;
          KeyManagerDelegate (final X509KeyManager manager)
             _manager = manager;
          @Override
          public String chooseClientAlias (final String[] arg0, final Principal[] arg1, final Socket arg2)
             return _manager.chooseClientAlias(arg0, arg1, arg2);
          @Override
          public String chooseServerAlias (final String arg0, final Principal[] arg1, final Socket arg2)
             return _manager.chooseServerAlias(arg0, arg1, arg2);
          @Override
          public X509Certificate[] getCertificateChain (final String arg0)
             return _manager.getCertificateChain(arg0);
          @Override
          public String[] getClientAliases (final String arg0, final Principal[] arg1)
             return _manager.getClientAliases(arg0, arg1);
          @Override
          public PrivateKey getPrivateKey (final String arg0)
             return _manager.getPrivateKey(arg0);
          @Override
          public String[] getServerAliases (final String arg0, final Principal[] arg1)
             return _manager.getServerAliases(arg0, arg1);
       }

  • How to use the customer types in customer master data

    how to use the customer types in customer master data?
    menu path is Extras -> account group info -> customer types

    hi,
    This is an option given to you to choose (if you need to) the way you perceive this customer.Here you get options including ompetitors,Salespartner, prospect,
    default sp ,consumer.
    See it helps you to differentiate between prospect(which you may use for quotation or inquiry purpose)Sales partner and the competetor.
    I hope this clarifies your quiery.Reward points if so.
    Thanking you,
    Best regards,
    R.Srinivasan

  • I have installed a trial of Adobe illustrator on my macbook pro. I want to trace an image using the custom trace button but can't. Does anyone have any ideas how I could custom trace?

    I have installed a trial of Adobe illustrator on my macbook pro. It is the 2014 release of adobe illustrator. I want to trace an image using the custom trace button.
    I start a new document. Then I place my scanned pencil/colored pencil drawing, in to the document. I have tried scanning and then placing it as a jpeg, bitmap, and tiff file. I have tried scanning and then placing it, in color and in black and white. The scan mode I use is flatbed. Adobe illustrator allows me to select the default button and one of eleven preset buttons (e.g high fidelity photo), but it does not allow me to click the custom trace button. The custom trace button is grey while all the other buttons are white.
    Does anyone have any ideas how I could custom trace?

    It seems pointless to adjust it afterwards because it is then only a couple a pencil lines rather then a full drawing. And how do I adjust it afterwards? Would I do this using the different buttons under the window button?

  • How can i use my custom login page in a custom partner application ?

    Dear All,
    I'm trying to customize a login page displayed other than the default sso login page
    by submiting my form to the regular pl/sql procedure : "PORTAL.wwptl_login.login_url"
    but i tried to type the requested partner application url in the browser i got the sso
    login page other than my custom login page. So, How can i use my custom login page in a custom partner application ?
    Regards,
    Mohammed Amin
    [email protected]

    I cannot begin to express my level of frustration. I have been trying to use the composition widget light box display for some time now. I drag the widget to my document. The default widget has three small trigger boxes and a large area made up of a forward and backward button, a background, a text box and a frame for your image.
    My steps have been …
    I click on the little trigger box.
    I click on the frame that holds the main image.
    I go to the fill menu and browse my computer for my image and then click OK.
    IT shows up on my screen. Yay
    I attempt to continue using the next two trigger boxes provided in the widget.
    After that, I add more by clicking on the little plus sign.
    This is where all heck breaks loose.
    Every single time I attempt to add thumbnails, something messes up. When I go to preview, either not all of my main images show up, or it starts with the wrong one, or some are missing. I have looked and looked for help on this and the only thing I can find is how easy it is to create a great portfolio lightbox display.  But as we know, that only works when your thumbnails are the same image as the images in your lightbox. If you want something different, you have to use the composition wizard. I am finding it extremely difficult and confusing to customize.
    Is there an exact sequence you need to use to add images to the slideshow? I am my wits end.

  • How to detect if a user has changed a record using a custom method?

    I am in the process of developing a test case application using ADF JSF and a collection of Java objects that are not populated by a database.
    Details of what I have developed so far can be found on this post:
    how to create a new record using a custom method?
    Is it possible to detect if a user has changed the value(s) of a record?
    I have set the edit page up (as described in the other post) and this works fine, but how could I tell if the user has changed something on that record. This is what I would like to do, but am not sure how to achieve it or whether it is possible....
    when the user puts a record in edit mode, take a copy of that record
    then when the user presses save or exit to navigate away from the edit page do a comparison between the original values and the potentially changed ones
    then depending on the outcome of the comparison call an appropriate action
    Thanks in advance for your help
    David

    If you just want to know if the value has changed you can put it in a while loop and use shift registers to see if the value has changed.
    Brian
    Attachments:
    Changed.vi ‏22 KB

  • How to use a custom wallpaper in 5030

    Hi!
    Is it possible to use a custom wallpaper in 5030? Obviously MMS messages are not supported, so is there any way to upload and use a personal wallpaper in 5030?

    if you recieve an image from mms you can save the object to gallery and then select it as wallpaper
    If  i have helped at all a click on the white star below would be nice thanks.
    Now using the Lumia 1520

  • Using a Custom Object to allow an Entity to link to itself

    Hey folks,
    Have a feeling the answer to this is No, but have to ask anyway.
    Is there any way that anyone is aware of to use a Custom Object to link an Entity to itself? For example... We have a CO (Custom Object) which is linked to Service Request. I want to link this CO to Service Request again, allowing one Service Request to be linked to another Service Request via the CO. I can obviously link Service Request to the CO, but the second link doesn't seem likely.
    Cheers,
    Mark

    You can link multiple Service Requests to a single Custom Object (1-3) very easliy. Just expose SRs under related items on the Custom Object and adjust Access Profiles appropriately. Alternately, you can add Custom Objects to related items on the Service Request page layout so SRs can be linked to multiple COs.
    In the end, you can end up with one CO linked to multiple SRs. This should give you what you are looking for - there may be more elaborate solutions involving multiple advanced custom objects.
    The key, of course, is how you need this data to be viewed or reported on. You'll need to assess this solution to see if the output is what you require.

Maybe you are looking for