CredentialsStrategySessionFactory implements InitializingBean, DisposableBean, SessionFactory { public Session createSessionProxy( Session session ) { return (Session) Proxy .newProxyInstance( this.getClass().getClassLoader(), new Class[] { Session.class, XASession.class }, new LogoutSuppressingInvocationHandler( session ) ); } CredentialsStrategySessionFactory( Repository repository, CredentialsStrategy credentialsStrategy );  CredentialsStrategySessionFactory( Repository repository, CredentialsStrategy credentialsStrategy,
                                            CredentialsStrategy adminCredentialsStrategy );  CredentialsStrategySessionFactory( Repository repository, String workspaceName,
                                            CredentialsStrategy credentialsStrategy,
                                            CredentialsStrategy adminCredentialsStrategy );  CredentialsStrategySessionFactory( Repository repository, String workspaceName,
                                            CredentialsStrategy credentialsStrategy,
                                            CredentialsStrategy adminCredentialsStrategy,
                                            SessionHolderProviderManager sessionHolderProviderManager ); PentahoJcrSessionFactory getSessionFactory(); void setSessionFactory( PentahoJcrSessionFactory sessionFactory ); void afterPropertiesSet(); void setNodeTypeDefinitionProviders( final List<NodeTypeDefinitionProvider> nodeTypeDefinitionProviders ); void destroy(); Session getAdminSession(); Session getSession(); Session createSessionProxy( Session session ); SessionHolder getSessionHolder( Session session ); Repository getRepository(); void setRepository( Repository repository ); void setWorkspaceName( String workspaceName ); boolean equals( Object obj ); int hashCode(); String toString(); EventListenerDefinition[] getEventListeners(); void setEventListeners( EventListenerDefinition[] eventListenerDefinitions ); Properties getNamespaces(); void setNamespaces( Properties namespaces ); SessionHolderProviderManager getSessionHolderProviderManager(); void setSessionHolderProviderManager( SessionHolderProviderManager sessionHolderProviderManager ); void setKeepNewNamespaces( boolean keepNamespaces ); void setForceNamespacesRegistration( boolean forceNamespacesRegistration ); void setSkipExistingNamespaces( boolean skipRegisteredNamespace ); boolean isForceNamespacesRegistration(); boolean isKeepNewNamespaces(); boolean isSkipExistingNamespaces(); String getWorkspaceName();  }
@Test public void createSessionProxy() throws Exception { assertThat( sessionProxy, allOf( instanceOf( XASession.class ), instanceOf( Session.class ) ) ); }