m_queryFactory.init(queryClient, props);
m_queryFactory.init(m_fedora, queryClient, props);
    public void init(Properties props) throws RepositoryException {        m_fedoraBaseURL   = getRequired(props, PROP_BASEURL);        if (!m_fedoraBaseURL.endsWith("/")) m_fedoraBaseURL += "/";        m_fedoraUser      = getRequired(props, PROP_USER);         m_fedoraPass      = getRequired(props, PROP_PASS);         m_metadataFormats = getMetadataFormats(props);        try {            m_identify = new URL(getRequired(props, PROP_IDENTIFY));        } catch (MalformedURLException e) {            throw new RepositoryException(                    "Identify property is not a valid URL: "                     + props.getProperty(PROP_IDENTIFY), e);        }        String className = getRequired(props, PROP_QUERY_FACTORY);        try {            m_fedora = new FedoraClient(m_fedoraBaseURL, m_fedoraUser, m_fedoraPass);            m_fedora.TIMEOUT_SECONDS = getRequiredInt(props, PROP_DISS_CONN_TIMEOUT);            m_fedora.SOCKET_TIMEOUT_SECONDS = getRequiredInt(props, PROP_DISS_SOCK_TIMEOUT);        } catch (Exception e) {            throw new RepositoryException("Error parsing baseURL", e);        }                try {            Class queryFactoryClass = Class.forName(className);            m_queryFactory = (QueryFactory) queryFactoryClass.newInstance();            FedoraClient queryClient = new FedoraClient(m_fedoraBaseURL, m_fedoraUser, m_fedoraPass);            queryClient.TIMEOUT_SECONDS = getRequiredInt(props, PROP_QUERY_CONN_TIMEOUT);            queryClient.SOCKET_TIMEOUT_SECONDS = getRequiredInt(props, PROP_QUERY_SOCK_TIMEOUT);            m_queryFactory.init(queryClient, props);        } catch (Exception e) {            throw new RepositoryException("Unable to initialize " + className, e);        }    }