Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java	(revision 0)
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core;
+
+import org.apache.jackrabbit.core.session.ItemManager;
+import org.apache.jackrabbit.core.session.PropertyData;
+import org.apache.jackrabbit.core.session.SessionImpl;
+
+/**
+ * <code>PropertyImpl</code> implements the <code>Property</code> interface.
+ */
+public class PropertyImpl
+        extends org.apache.jackrabbit.core.session.PropertyImpl {
+
+    public PropertyImpl(
+            ItemManager itemMgr, SessionImpl session, PropertyData data) {
+        super(itemMgr, session, data);
+    }
+
+}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java	(revision 0)
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core;
+
+import org.apache.jackrabbit.core.session.AbstractNodeData;
+import org.apache.jackrabbit.core.session.ItemManager;
+import org.apache.jackrabbit.core.session.SessionImpl;
+
+/**
+ * <code>NodeImpl</code> implements the <code>Node</code> interface.
+ */
+public class NodeImpl extends org.apache.jackrabbit.core.session.NodeImpl {
+
+    public NodeImpl(
+            ItemManager itemMgr, SessionImpl session, AbstractNodeData data) {
+        super(itemMgr, session, data);
+    }
+}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java	(revision 945141)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java	(working copy)
@@ -459,7 +464,7 @@
      * @return the security manager
      * @throws RepositoryException if an error occurs.
      */
-    protected synchronized JackrabbitSecurityManager getSecurityManager()
+    public synchronized JackrabbitSecurityManager getSecurityManager()
             throws RepositoryException {
 
         if (securityMgr == null) {
@@ -728,19 +733,19 @@
         }
     }
 
-    protected NamespaceRegistryImpl getNamespaceRegistry() {
+    public NamespaceRegistryImpl getNamespaceRegistry() {
         return nsReg;
     }
 
-    protected NodeTypeRegistry getNodeTypeRegistry() {
+    public NodeTypeRegistry getNodeTypeRegistry() {
         return ntReg;
     }
 
-    protected InternalVersionManager getVersionManager() {
+    public InternalVersionManager getVersionManager() {
         return vMgr;
     }
 
-    protected NodeId getRootNodeId() {
+    public NodeId getRootNodeId() {
         return rootNodeId;
     }
 
@@ -750,7 +755,7 @@
      * @return the names of all workspaces in this repository.
      * @see javax.jcr.Workspace#getAccessibleWorkspaceNames()
      */
-    protected String[] getWorkspaceNames() {
+    public String[] getWorkspaceNames() {
         synchronized (wspInfos) {
             return wspInfos.keySet().toArray(new String[wspInfos.keySet().size()]);
         }
@@ -766,7 +771,7 @@
      * @throws NoSuchWorkspaceException If the named workspace does not exist.
      * @throws RepositoryException If this repository has been shut down.
      */
-    protected WorkspaceInfo getWorkspaceInfo(String workspaceName)
+    public WorkspaceInfo getWorkspaceInfo(String workspaceName)
             throws NoSuchWorkspaceException, RepositoryException {
         // check sanity of this instance
         sanityCheck();
@@ -796,7 +801,7 @@
      *                             already exists or if another error occurs
      * @see SessionImpl#createWorkspace(String)
      */
-    protected void createWorkspace(String workspaceName)
+    public void createWorkspace(String workspaceName)
             throws RepositoryException {
         synchronized (wspInfos) {
             if (wspInfos.containsKey(workspaceName)) {
@@ -868,7 +873,7 @@
      *                             exists or if another error occurs
      * @see SessionImpl#createWorkspace(String,InputSource)
      */
-    protected void createWorkspace(String workspaceName,
+    public void createWorkspace(String workspaceName,
                                    InputSource configTemplate)
             throws RepositoryException {
 
@@ -881,7 +886,7 @@
         }
     }
 
-    SharedItemStateManager getWorkspaceStateManager(String workspaceName)
+    public SharedItemStateManager getWorkspaceStateManager(String workspaceName)
             throws NoSuchWorkspaceException, RepositoryException {
         // check sanity of this instance
         sanityCheck();
@@ -907,7 +912,7 @@
         manager.setCheckReferences(enabled);
     }
 
-    ObservationDispatcher getObservationDispatcher(String workspaceName)
+    public ObservationDispatcher getObservationDispatcher(String workspaceName)
             throws NoSuchWorkspaceException, RepositoryException {
         // check sanity of this instance
         sanityCheck();
@@ -928,7 +933,7 @@
      * @throws RepositoryException      if an error occurs while opening the
      *                                  search index.
      */
-    SearchManager getSearchManager(String workspaceName)
+    public SearchManager getSearchManager(String workspaceName)
             throws NoSuchWorkspaceException, RepositoryException {
         // check sanity of this instance
         sanityCheck();
@@ -945,7 +950,7 @@
      * @throws NoSuchWorkspaceException if such a workspace does not exist
      * @throws RepositoryException      if some other error occurs
      */
-    LockManagerImpl getLockManager(String workspaceName) throws
+    public LockManagerImpl getLockManager(String workspaceName) throws
             NoSuchWorkspaceException, RepositoryException {
         // check sanity of this instance
         sanityCheck();
@@ -962,7 +967,7 @@
      * @throws NoSuchWorkspaceException if such a workspace does not exist
      * @throws RepositoryException      if some other error occurs
      */
-    RetentionRegistry getRetentionRegistry(String workspaceName) throws NoSuchWorkspaceException, RepositoryException {
+    public RetentionRegistry getRetentionRegistry(String workspaceName) throws NoSuchWorkspaceException, RepositoryException {
         // check sanity of this instance
         sanityCheck();
         return getWorkspaceInfo(workspaceName).getRetentionRegistry();
@@ -1031,7 +1036,7 @@
      *                                  workspace
      * @throws RepositoryException      if another error occurs
      */
-    protected final SessionImpl createSession(Subject subject,
+    public final SessionImpl createSession(Subject subject,
                                               String workspaceName)
             throws NoSuchWorkspaceException, AccessDeniedException,
             RepositoryException {
@@ -1049,7 +1054,7 @@
      *
      * @param session the session to register
      */
-    protected void onSessionCreated(SessionImpl session) {
+    public void onSessionCreated(SessionImpl session) {
         synchronized (activeSessions) {
             session.addListener(this);
             activeSessions.put(session, session);
@@ -1252,7 +1257,7 @@
      * Returns the repository file system.
      * @return repository file system
      */
-    protected FileSystem getFileSystem() {
+    public FileSystem getFileSystem() {
         return repStore;
     }
 
@@ -1638,7 +1643,7 @@
      * representing the same named workspace, i.e. the same physical
      * storage.
      */
-    protected class WorkspaceInfo implements UpdateEventListener {
+    public class WorkspaceInfo implements UpdateEventListener {
 
         /**
          * workspace configuration (passed in constructor)
@@ -1810,7 +1815,7 @@
          * @throws RepositoryException if the persistence manager could not be
          * instantiated/initialized
          */
-        protected PersistenceManager getPersistenceManager()
+        public PersistenceManager getPersistenceManager()
                 throws RepositoryException {
             if (!isInitialized()) {
                 throw new IllegalStateException("workspace '" + getName()
@@ -1966,7 +1971,7 @@
          *         initialized, <code>false</code> if it is already initialized.
          * @throws RepositoryException if an error occurred during the initialization
          */
-        final boolean initialize() throws RepositoryException {
+        public final boolean initialize() throws RepositoryException {
             // check initialize status
             try {
                 initLock.readLock().acquire();
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionImpl.java	(working copy)
@@ -325,7 +328,8 @@
                                                     SharedItemStateManager stateMgr,
                                                     RepositoryImpl rep,
                                                     SessionImpl session) {
-        return new WorkspaceImpl(wspConfig, stateMgr, rep, session);
+        return new org.apache.jackrabbit.core.WorkspaceImpl(
+                wspConfig, stateMgr, rep, session);
     }
 
     /**
@@ -495,7 +499,7 @@
      * @return internal retention manager
      * @throws RepositoryException
      */
-    protected RetentionRegistry getRetentionRegistry() throws RepositoryException {
+    public RetentionRegistry getRetentionRegistry() throws RepositoryException {
         return wsp.getRetentionRegistry();
     }
 
@@ -516,7 +520,7 @@
      * @param value attribute value
      * @since Apache Jackrabbit 1.6
      */
-    protected void setAttribute(String name, Object value) {
+    public void setAttribute(String name, Object value) {
         if (value != null) {
             attributes.put(name, value);
         } else {
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/PropertyImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/PropertyImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/PropertyImpl.java	(working copy)
@@ -57,7 +57,8 @@
 /**
  * <code>PropertyImpl</code> implements the <code>Property</code> interface.
  */
-public class PropertyImpl extends ItemImpl implements Property {
+public class PropertyImpl
+        extends org.apache.jackrabbit.core.ItemImpl implements Property {
 
     private static Logger log = LoggerFactory.getLogger(PropertyImpl.class);
 
@@ -71,7 +72,8 @@
      * @param session    the <code>Session</code> through which this <code>Property</code> is acquired
      * @param data       the property data
      */
-    PropertyImpl(ItemManager itemMgr, SessionImpl session, PropertyData data) {
+    protected PropertyImpl(
+            ItemManager itemMgr, SessionImpl session, PropertyData data) {
         super(itemMgr, session, data);
         this.data = data;
         // value will be read on demand
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/NodeImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/NodeImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/NodeImpl.java	(working copy)
@@ -109,7 +115,8 @@
 /**
  * <code>NodeImpl</code> implements the <code>Node</code> interface.
  */
-public class NodeImpl extends ItemImpl implements Node {
+public class NodeImpl
+        extends org.apache.jackrabbit.core.ItemImpl implements Node {
 
     private static Logger log = LoggerFactory.getLogger(NodeImpl.class);
 
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/WorkspaceImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/WorkspaceImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/WorkspaceImpl.java	(working copy)
@@ -263,7 +267,8 @@
 
     VersionManagerImpl getVersionManagerImpl() {
         if (versionMgr == null) {
-            versionMgr = new VersionManagerImpl(session, stateMgr, hierMgr);
+            versionMgr = new org.apache.jackrabbit.core.VersionManagerImpl(
+                    session, stateMgr, hierMgr);
         }
         return versionMgr;
     }
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/ItemImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/ItemImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/ItemImpl.java	(working copy)
@@ -121,7 +122,7 @@
      * @param session   the <code>Session</code> through which this <code>Item</code> is acquired
      * @param data      ItemData of this <code>Item</code>
      */
-    ItemImpl(ItemManager itemMgr, SessionImpl session, ItemData data) {
+    protected ItemImpl(ItemManager itemMgr, SessionImpl session, ItemData data) {
         this.session = session;
         rep = (RepositoryImpl) session.getRepository();
         stateMgr = session.getItemStateManager();
@@ -194,7 +195,7 @@
      *
      * @return state associated with this <code>Item</code>
      */
-    ItemState getItemState() {
+    protected ItemState getItemState() {
         return data.getState();
     }
 
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/XAWorkspace.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/XAWorkspace.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/XAWorkspace.java	(working copy)
@@ -14,17 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.jackrabbit.core;
+package org.apache.jackrabbit.core.session;
 
+import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.config.WorkspaceConfig;
+import org.apache.jackrabbit.core.state.LocalItemStateManager;
 import org.apache.jackrabbit.core.state.SharedItemStateManager;
 import org.apache.jackrabbit.core.state.XAItemStateManager;
-import org.apache.jackrabbit.core.state.LocalItemStateManager;
 
 /**
  * Workspace extension that works in an XA environment.
  */
-public class XAWorkspace extends WorkspaceImpl {
+public class XAWorkspace extends org.apache.jackrabbit.core.WorkspaceImpl {
 
     /**
      * Protected constructor.
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SystemSession.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SystemSession.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SystemSession.java	(working copy)
@@ -43,7 +45,8 @@
 /**
  * A <code>SystemSession</code> ...
  */
-class SystemSession extends SessionImpl {
+@SuppressWarnings("deprecation")
+public class SystemSession extends org.apache.jackrabbit.core.SessionImpl {
 
     /**
      * Package private factory method
@@ -53,7 +56,7 @@
      * @return
      * @throws RepositoryException
      */
-    static SystemSession create(RepositoryImpl rep, WorkspaceConfig wspConfig)
+    public static SystemSession create(RepositoryImpl rep, WorkspaceConfig wspConfig)
             throws RepositoryException {
         // create subject with SystemPrincipal
         Set<SystemPrincipal> principals = new HashSet<SystemPrincipal>();
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/ItemManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/ItemManager.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/ItemManager.java	(working copy)
@@ -835,13 +836,13 @@
             return new VersionHistoryImpl(this, session, data);
         } else {
             // create node object
-            return new NodeImpl(this, session, data);
+            return new org.apache.jackrabbit.core.NodeImpl(this, session, data);
         }
     }
 
     private PropertyImpl createPropertyInstance(PropertyData data) {
         // check special nodes
-        return new PropertyImpl(this, session, data);
+        return new org.apache.jackrabbit.core.PropertyImpl(this, session, data);
     }
 
     //---------------------------------------------------< item cache methods >
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/XASessionImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/XASessionImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/XASessionImpl.java	(working copy)
@@ -43,7 +46,7 @@
 /**
  * Session extension that provides XA support.
  */
-public class XASessionImpl extends SessionImpl
+public class XASessionImpl extends org.apache.jackrabbit.core.SessionImpl
         implements XASession, XAResource {
 
     /**
@@ -100,7 +103,7 @@
      *                               workspace
      * @throws RepositoryException   if another error occurs
      */
-    protected XASessionImpl(RepositoryImpl rep, AuthContext loginContext,
+    public XASessionImpl(RepositoryImpl rep, AuthContext loginContext,
                             WorkspaceConfig wspConfig)
             throws AccessDeniedException, RepositoryException {
 
@@ -119,7 +122,7 @@
      *                               to the specified workspace
      * @throws RepositoryException   if another error occurs
      */
-    protected XASessionImpl(RepositoryImpl rep, Subject subject,
+    public XASessionImpl(RepositoryImpl rep, Subject subject,
                             WorkspaceConfig wspConfig)
             throws AccessDeniedException, RepositoryException {
 
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java	(revision 0)
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core;
+
+import org.apache.jackrabbit.core.session.ItemData;
+import org.apache.jackrabbit.core.session.ItemManager;
+import org.apache.jackrabbit.core.session.SessionImpl;
+
+/**
+ * <code>ItemImpl</code> implements the <code>Item</code> interface.
+ */
+public abstract class ItemImpl
+        extends org.apache.jackrabbit.core.session.ItemImpl {
+
+    protected ItemImpl(ItemManager itemMgr, SessionImpl session, ItemData data) {
+        super(itemMgr, session, data);
+    }
+
+}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/UserManagerImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/UserManagerImpl.java	(revision 945141)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/UserManagerImpl.java	(working copy)
@@ -300,7 +301,7 @@
          * workaround: compare the class name and check if the subject contains
          * the system principal.
          */
-        isSystemUserManager = "org.apache.jackrabbit.core.SystemSession".equals(session.getClass().getName()) && 
+        isSystemUserManager = session instanceof SystemSession &&
                 !session.getSubject().getPrincipals(SystemPrincipal.class).isEmpty();
     }
     
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java	(revision 0)
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core;
+
+import org.apache.jackrabbit.core.session.SessionImpl;
+import org.apache.jackrabbit.core.state.UpdatableItemStateManager;
+
+/**
+ * Implementation of the {@link javax.jcr.version.VersionManager}.
+ * <p/>
+ * This class implements the JCR Version Manager interface but most of the
+ * operations are performed in the super classes. this is only cosmetic to
+ * avoid huge source files.
+ */
+public class VersionManagerImpl
+        extends org.apache.jackrabbit.core.session.VersionManagerImpl {
+
+    public VersionManagerImpl(
+            SessionImpl session, UpdatableItemStateManager stateMgr,
+            HierarchyManager hierMgr) {
+        super(session, stateMgr, hierMgr);
+    }
+
+}
\ No newline at end of file
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java	(revision 0)
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core;
+
+import javax.jcr.AccessDeniedException;
+import javax.jcr.RepositoryException;
+import javax.security.auth.Subject;
+
+import org.apache.jackrabbit.core.config.WorkspaceConfig;
+import org.apache.jackrabbit.core.security.authentication.AuthContext;
+
+/**
+ * A <code>SessionImpl</code> ...
+ */
+public class SessionImpl
+        extends org.apache.jackrabbit.core.session.SessionImpl {
+
+    protected SessionImpl(
+            RepositoryImpl rep, AuthContext loginContext, WorkspaceConfig wspConfig)
+            throws AccessDeniedException, RepositoryException {
+        super(rep, loginContext, wspConfig);
+    }
+
+    protected SessionImpl(
+            RepositoryImpl rep, Subject subject, WorkspaceConfig wspConfig)
+            throws AccessDeniedException, RepositoryException {
+        super(rep, subject, wspConfig);
+    }
+
+}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionHistoryImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionHistoryImpl.java	(revision 945141)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionHistoryImpl.java	(working copy)
@@ -46,7 +45,9 @@
 /**
  * Base implementation of the {@link javax.jcr.version.VersionHistory} interface.
  */
-public class VersionHistoryImpl extends NodeImpl implements VersionHistory {
+@SuppressWarnings("deprecation")
+public class VersionHistoryImpl
+        extends org.apache.jackrabbit.core.NodeImpl implements VersionHistory {
 
     /**
      * Logger instance.
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java	(revision 0)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core;
+
+import org.apache.jackrabbit.core.config.WorkspaceConfig;
+import org.apache.jackrabbit.core.session.SessionImpl;
+import org.apache.jackrabbit.core.state.SharedItemStateManager;
+
+/**
+ * A <code>WorkspaceImpl</code> ...
+ */
+public class WorkspaceImpl
+        extends org.apache.jackrabbit.core.session.WorkspaceImpl {
+
+    public WorkspaceImpl(
+            WorkspaceConfig wspConfig, SharedItemStateManager stateMgr,
+            RepositoryImpl rep, SessionImpl session) {
+        super(wspConfig, stateMgr, rep, session);
+    }
+
+}

