You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2008/09/02 18:56:04 UTC
svn commit: r691319 - in
/jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx:
JCRServer.java JCRServerMBean.java
Author: jukka
Date: Tue Sep 2 09:56:03 2008
New Revision: 691319
URL: http://svn.apache.org/viewvc?rev=691319&view=rev
Log:
JCR-1317: Add a MBean method to programatically create a new Workspace.
Applied a patch by Manual Duran.
Modified:
jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServer.java
jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServerMBean.java
Modified: jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServer.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServer.java?rev=691319&r1=691318&r2=691319&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServer.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServer.java Tue Sep 2 09:56:03 2008
@@ -20,9 +20,15 @@
import java.io.InputStream;
import java.util.Properties;
+import javax.jcr.Credentials;
+import javax.jcr.LoginException;
import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
import javax.naming.InitialContext;
+import org.apache.jackrabbit.api.JackrabbitWorkspace;
import org.apache.jackrabbit.rmi.remote.RemoteRepository;
import org.apache.jackrabbit.rmi.server.RemoteAdapterFactory;
import org.apache.jackrabbit.rmi.server.ServerAdapterFactory;
@@ -57,6 +63,11 @@
*/
RemoteRepository remote;
+ /**
+ * Local repository instance
+ */
+ private Repository localRepository;
+
public void start() throws Exception {
if (this.localAddress == null) {
@@ -69,8 +80,7 @@
// local repository
InitialContext localContext = createInitialContext(localEnvironment);
- Repository localRepository = (Repository) localContext
- .lookup(this.localAddress);
+ localRepository = (Repository) localContext.lookup(this.localAddress);
if (localRepository == null) {
throw new IllegalArgumentException("local repository not found at "
+ this.localAddress);
@@ -114,6 +124,33 @@
remote = null;
}
+ public void createWorkspace( String username, String password, String workspace ) {
+ try {
+ Credentials cred = new SimpleCredentials( username, password.toCharArray() );
+ Session sesion = this.localRepository.login( cred );
+ JackrabbitWorkspace ws = ( JackrabbitWorkspace ) sesion.getWorkspace();
+ ws.createWorkspace( workspace );
+ } catch ( LoginException ex ) {
+ ex.printStackTrace();
+ } catch ( RepositoryException ex ) {
+ ex.printStackTrace();
+ }
+ }
+
+ /**
+ * Returns the local repository instance.
+ */
+ Repository getLocalRepository() {
+ return localRepository;
+ }
+
+ /**
+ * Sets the local repository instance.
+ */
+ public void setLocalRepository( Repository localRepository ) {
+ this.localRepository = localRepository;
+ }
+
public String getLocalAddress() {
return localAddress;
}
Modified: jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServerMBean.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServerMBean.java?rev=691319&r1=691318&r2=691319&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServerMBean.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/jmx/JCRServerMBean.java Tue Sep 2 09:56:03 2008
@@ -22,6 +22,8 @@
public void stop() throws Exception;
+ public void createWorkspace(String username, String password, String workspace);
+
public String getLocalAddress();
public void setLocalAddress(String address);