/*
* Copyright (c) 2006, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* 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.wso2.carbon.registry.extensions.test.utils;
import org.apache.abdera.protocol.server.servlet.AbderaServlet;
import org.apache.abdera.protocol.server.ServiceManager;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
import org.wso2.carbon.registry.core.config.RegistryContext;
import org.wso2.carbon.registry.app.RegistryProvider;
import org.wso2.carbon.user.core.UserRealm;
import org.wso2.carbon.user.core.service.RealmService;
import org.wso2.carbon.registry.core.jdbc.realm.InMemoryRealmService;
/**
* A very simple embeddable Registry server - handles the Registry wire protocol (APP) but has no UI
* support built in. Uses Jetty internally.
*/
public class RegistryServer {
int port = 8081;
String baseURL = "/wso2registry";
// Registry registry;
Server server;
public RegistryServer() {
}
public RegistryServer(int port) {
this.port = port;
}
public RegistryServer(int port, String baseURL) {
this.port = port;
this.baseURL = baseURL;
}
public static void main(String[] args) throws Exception {
int port = 8081;
if (args.length > 0) {
port = Integer.parseInt(args[0]);
}
RegistryServer s = new RegistryServer(port);
s.start();
}
public void start() throws Exception {
RealmService realmService = new InMemoryRealmService();
RegistryContext regContext = RegistryContext.getBaseInstance(realmService);
regContext.selectDBConfig("in-memory");
//RegistryContext.setSingleton(regContext);
server = new Server(port);
Context context = new Context(server, null/*RegistryProvider.baseURI*/, Context.SESSIONS);
ServletHolder servletHolder = new ServletHolder(new AbderaServlet());
servletHolder.setInitParameter(ServiceManager.PROVIDER,
RegistryProvider.class.getName());
context.addServlet(servletHolder, "/*");
server.start();
// root.addServlet(new ServletHolder(new RegistryServlet()), "/resources/*");
// root.addServlet(new ServletHolder(new AbderaServlet()), "/atom/*");
// server.start();
}
public void stop() throws Exception {
if (server != null) server.stop();
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getBaseURL() {
return baseURL;
}
public void setBaseURL(String baseURL) {
this.baseURL = baseURL;
}
}