Class JNDIConfiguration

    • Field Detail

      • prefix

        private java.lang.String prefix
        The prefix of the context.
      • context

        private javax.naming.Context context
        The initial JNDI context.
      • baseContext

        private javax.naming.Context baseContext
        The base JNDI context.
      • clearedProperties

        private final java.util.Set<java.lang.String> clearedProperties
        The Set of keys that have been virtually cleared.
    • Constructor Detail

      • JNDIConfiguration

        public JNDIConfiguration()
                          throws javax.naming.NamingException
        Creates a JNDIConfiguration using the default initial context as the root of the properties.
        Throws:
        javax.naming.NamingException - thrown if an error occurs when initializing the default context
      • JNDIConfiguration

        public JNDIConfiguration​(javax.naming.Context context)
        Creates a JNDIConfiguration using the specified initial context as the root of the properties.
        Parameters:
        context - the initial context
      • JNDIConfiguration

        public JNDIConfiguration​(javax.naming.Context context,
                                 java.lang.String prefix)
        Creates a JNDIConfiguration using the specified initial context shifted by the specified prefix as the root of the properties.
        Parameters:
        context - the initial context
        prefix - the prefix
      • JNDIConfiguration

        public JNDIConfiguration​(java.lang.String prefix)
                          throws javax.naming.NamingException
        Creates a JNDIConfiguration using the default initial context, shifted with the specified prefix, as the root of the properties.
        Parameters:
        prefix - the prefix
        Throws:
        javax.naming.NamingException - thrown if an error occurs when initializing the default context
    • Method Detail

      • addPropertyDirect

        protected void addPropertyDirect​(java.lang.String key,
                                         java.lang.Object obj)

        This operation is not supported and will throw an UnsupportedOperationException.

        Specified by:
        addPropertyDirect in class AbstractConfiguration
        Parameters:
        key - the key
        obj - the value
        Throws:
        java.lang.UnsupportedOperationException - always thrown as this method is not supported
      • clearPropertyDirect

        protected void clearPropertyDirect​(java.lang.String key)
        Removes the specified property.
        Specified by:
        clearPropertyDirect in class AbstractConfiguration
        Parameters:
        key - the key of the property to remove
      • containsKeyInternal

        protected boolean containsKeyInternal​(java.lang.String key)
        Checks whether the specified key is contained in this configuration.
        Specified by:
        containsKeyInternal in class AbstractConfiguration
        Parameters:
        key - the key to check
        Returns:
        a flag whether this key is stored in this configuration
      • containsValueInternal

        protected boolean containsValueInternal​(java.lang.Object value)
        Tests whether this configuration contains one or more matches to this value. This operation stops at first match but may be more expensive than the containsKey method.
        Specified by:
        containsValueInternal in class AbstractConfiguration
        Parameters:
        value - the value in question
        Returns:
        true if and only if some key maps to the value argument in this configuration as determined by the equals method; false otherwise.
        Since:
        2.11.0
      • getBaseContext

        public javax.naming.Context getBaseContext()
                                            throws javax.naming.NamingException
        Gets the base context with the prefix applied.
        Returns:
        the base context
        Throws:
        javax.naming.NamingException - if an error occurs
      • getContext

        public javax.naming.Context getContext()
        Gets the initial context used by this configuration. This context is independent of the prefix specified.
        Returns:
        the initial context
      • getContext

        private javax.naming.Context getContext​(java.util.List<java.lang.String> path,
                                                javax.naming.Context context)
                                         throws javax.naming.NamingException
        Because JNDI is based on a tree configuration, we need to filter down the tree, till we find the Context specified by the key to start from. Otherwise return null.
        Parameters:
        path - the path of keys to traverse in order to find the context
        context - the context to start from
        Returns:
        The context at that key's location in the JNDI tree, or null if not found
        Throws:
        javax.naming.NamingException - if JNDI has an issue
      • getKeysInternal

        protected java.util.Iterator<java.lang.String> getKeysInternal()
        Gets an iterator with all property keys stored in this configuration.
        Specified by:
        getKeysInternal in class AbstractConfiguration
        Returns:
        an iterator with all keys
      • getKeysInternal

        protected java.util.Iterator<java.lang.String> getKeysInternal​(java.lang.String prefix)
        Gets an iterator with all property keys starting with the given prefix.
        Overrides:
        getKeysInternal in class AbstractConfiguration
        Parameters:
        prefix - the prefix
        Returns:
        an iterator with the selected keys
      • getPrefix

        public java.lang.String getPrefix()
        Gets the prefix.
        Returns:
        the prefix
      • getPropertyInternal

        protected java.lang.Object getPropertyInternal​(java.lang.String key)
        Gets the value of the specified property.
        Specified by:
        getPropertyInternal in class AbstractConfiguration
        Parameters:
        key - the key of the property
        Returns:
        the value of this property
      • isEmptyInternal

        protected boolean isEmptyInternal()
        Returns a flag whether this configuration is empty.
        Specified by:
        isEmptyInternal in class AbstractConfiguration
        Returns:
        the empty flag
      • recursiveGetKeys

        private void recursiveGetKeys​(java.util.Set<java.lang.String> keys,
                                      javax.naming.Context context,
                                      java.lang.String prefix,
                                      java.util.Set<javax.naming.Context> processedCtx)
                               throws javax.naming.NamingException
        This method recursive traverse the JNDI tree, looking for Context objects. When it finds them, it traverses them as well. Otherwise it just adds the values to the list of keys found.
        Parameters:
        keys - All the keys that have been found.
        context - The parent context
        prefix - What prefix we are building on.
        processedCtx - a set with the so far processed objects
        Throws:
        javax.naming.NamingException - If JNDI has an issue.
      • setContext

        public void setContext​(javax.naming.Context context)
        Sets the initial context of the configuration.
        Parameters:
        context - the context
      • setPrefix

        public void setPrefix​(java.lang.String prefix)
        Sets the prefix.
        Parameters:
        prefix - The prefix to set
      • setPropertyInternal

        protected void setPropertyInternal​(java.lang.String key,
                                           java.lang.Object value)

        This operation is not supported and will throw an UnsupportedOperationException.

        Overrides:
        setPropertyInternal in class AbstractConfiguration
        Parameters:
        key - the key
        value - the value
        Throws:
        java.lang.UnsupportedOperationException - always thrown as this method is not supported