@Override
    public boolean equals( final Object o )
    {
        if ( this == o ) { return true; }
        if ( o == null || getClass() != o.getClass() ) { return false; }
        final CertificateStoreConfiguration that = (CertificateStoreConfiguration) o;
        return Objects.equals( type, that.type ) &&
            Objects.equals( file, that.file ) &&
            Arrays.equals( password, that.password ) &&
            Objects.equals( backupDirectory, that.backupDirectory );
    }
Creates a new instance.

@param type The store type (jks, jceks, pkcs12, etc). Cannot be null or an empty string.
@param file  The file-system based representation of the store (cannot be null).
@param password the password used to check the integrity of the store, the password used to unlock the store, or null.
@param backupDirectory the directory in which the backup of the original keystore should be saved
xmppserver/src/main/java/org/jivesoftware/openfire/keystore/CertificateStoreConfiguration.java