X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2FJcrUtils.java;h=eb6be528bf25fb4bc610359782802e03bb5f5cfe;hb=b4c4c47379e740b494a4a759df07c7b09a7649fa;hp=416d035f8b5925555e421c46ede06e21e85dd231;hpb=b6cad136dfd4589bc2a8f48ec9168732517f451b;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/JcrUtils.java b/org.argeo.jcr/src/org/argeo/jcr/JcrUtils.java index 416d035f8..eb6be528b 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/JcrUtils.java +++ b/org.argeo.jcr/src/org/argeo/jcr/JcrUtils.java @@ -1,18 +1,3 @@ -/* - * 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.ByteArrayInputStream; @@ -38,6 +23,7 @@ import java.util.Map; import java.util.TreeMap; import javax.jcr.Binary; +import javax.jcr.Credentials; import javax.jcr.NamespaceRegistry; import javax.jcr.NoSuchWorkspaceException; import javax.jcr.Node; @@ -1067,16 +1053,25 @@ public class JcrUtils { */ public static Session loginOrCreateWorkspace(Repository repository, String workspaceName) throws RepositoryException { + return loginOrCreateWorkspace(repository, workspaceName, null); + } + + /** + * Login to a workspace with implicit credentials, creates the workspace with + * these credentials if it does not already exist. + */ + public static Session loginOrCreateWorkspace(Repository repository, String workspaceName, Credentials credentials) + throws RepositoryException { Session workspaceSession = null; Session defaultSession = null; try { try { - workspaceSession = repository.login(workspaceName); + workspaceSession = repository.login(credentials, workspaceName); } catch (NoSuchWorkspaceException e) { // try to create workspace - defaultSession = repository.login(); + defaultSession = repository.login(credentials); defaultSession.getWorkspace().createWorkspace(workspaceName); - workspaceSession = repository.login(workspaceName); + workspaceSession = repository.login(credentials, workspaceName); } return workspaceSession; } finally {