-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed 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.argeo.jcr;
import java.io.InputStream;
throws LoginException, NoSuchWorkspaceException, RepositoryException {
Session session;
try {
- session = getRepository().login(credentials, workspaceName);
+ session = getRepository(workspaceName).login(credentials, workspaceName);
} catch (NoSuchWorkspaceException e) {
if (autocreateWorkspaces && workspaceName != null)
session = createWorkspaceAndLogsIn(credentials, workspaceName);
protected void processNewSession(Session session, String workspaceName) {
}
- /** Wraps access to the repository, making sure it is available. */
+ /**
+ * Wraps access to the repository, making sure it is available.
+ *
+ * @deprecated Use {@link #getDefaultRepository()} instead.
+ */
+ @Deprecated
protected synchronized Repository getRepository() {
- // if (repository == null) {
- // throw new ArgeoJcrException("No repository initialized."
- // + " Was the init() method called?"
- // + " The destroy() method should also"
- // + " be called on shutdown.");
- // }
+ return getDefaultRepository();
+ }
+
+ protected synchronized Repository getDefaultRepository() {
return repository;
}
+ protected synchronized Repository getRepository(String workspaceName) {
+ return getDefaultRepository();
+ }
+
/**
* Logs in to the default workspace, creates the required workspace, logs out,
* logs in to the required workspace.
protected Session createWorkspaceAndLogsIn(Credentials credentials, String workspaceName)
throws RepositoryException {
if (workspaceName == null)
- throw new ArgeoJcrException("No workspace specified.");
- Session session = getRepository().login(credentials);
+ throw new IllegalArgumentException("No workspace specified.");
+ Session session = getRepository(workspaceName).login(credentials);
session.getWorkspace().createWorkspace(workspaceName);
session.logout();
- return getRepository().login(credentials, workspaceName);
+ return getRepository(workspaceName).login(credentials, workspaceName);
}
public boolean isStandardDescriptor(String key) {