commit - 6678ad177ad1fe96b0e65b8b7ab79839a5548938
commit + b6c2287f5b3ca967208eed57480d56a7a852ba57
blob - 04346d23d3002f0a477019d4b8a83bba02869deb
blob + e18fd28ce14d3a2be37d715ceb339c75cac22e24
--- build.xml
+++ build.xml
<pathelement location="${jar}/org.apache.crimson.jar"/>
<pathelement location="${jar}/org.mortbay.jetty.jar"/>
<pathelement location="${jar}/mckoidb.jar"/>
- <pathelement location="${jar}/xmlrpc-1.2-b1.jar"/>
+ <pathelement location="${jar}/commons-codec-1.3.jar"/>
+ <pathelement location="${jar}/commons-logging.jar"/>
+ <pathelement location="${jar}/httpclient-3.0-rc3.jar"/>
+ <pathelement location="${jar}/xmlrpc-2.0.jar"/>
<pathelement location="${jar}/jdic.jar"/>
+ <pathelement location="${jar}/jdic.jar"/>
</path>
<path id="snipsnap.test">
<pathelement location="${jar}/commons-dbcp-1.1.jar"/>
<pathelement location="${jar}/commons-pool-1.1.jar"/>
<pathelement location="${jar}/commons-collections.jar"/>
- <pathelement location="${jar}/xmlrpc-1.2-b1.jar"/>
+ <pathelement location="${jar}/commons-codec-1.3.jar"/>
+ <pathelement location="${jar}/commons-httpclient-3.0-rc3.jar"/>
+ <pathelement location="${jar}/xmlrpc-2.0.jar"/>
<pathelement location="${jar}/lucene-1.4.1.jar"/>
<pathelement location="${jar}/jython.jar"/>
<pathelement location="${jar}/smack.jar"/>
<include name="lib/org.apache.crimson.jar"/>
<include name="lib/org.mortbay.jetty.jar"/>
<include name="lib/javax.servlet.jar"/>
- <include name="lib/xmlrpc-1.2-b1.jar"/>
+ <include name="lib/commons-codec-1.3.jar"/>
+ <include name="lib/commons-logging.jar"/>
+ <include name="lib/httpclient-3.0-rc3.jar"/>
+ <include name="lib/javax.servlet.jar"/>
+ <include name="lib/xmlrpc-2.0.jar"/>
<include name="lib/mckoidb.jar"/>
<include name="lib/dom4j.jar"/>
<include name="lib/mysql-connector.jar"/>
<include name="javax.servlet.jar"/>
<include name="org.apache.crimson.jar"/>
<include name="org.apache.jasper.jar"/>
- <include name="xmlrpc-1.2-b1.jar"/>
+ <include name="commons-codec-1.3.jar"/>
+ <include name="commons-logging.jar"/>
+ <include name="httpclient-3.0-rc3.jar"/>
+ <include name="xmlrpc-2.0.jar"/>
<include name="mckoidb.jar"/>
<include name="mysql-connector.jar"/>
<include name="postgres-jdbc.jar"/>
<include name="commons-pool-1.1.jar"/>
<include name="commons-collections.jar"/>
<include name="lucene-1.4.1.jar"/>
- <include name="xmlrpc-1.2-b1.jar"/>
+ <include name="commons-codec-1.3.jar"/>
+ <include name="httpclient-3.0-rc3.jar"/>
+ <include name="xmlrpc-2.0.jar"/>
<include name="dom4j.jar"/>
<include name="smack.jar"/>
<include name="aspectjrt.jar"/>
blob - 792e560ca4e5f576250af71ea2351cd29fa61b40
blob + d804467c53879df3e9b40117622be32351a5fc55
--- conf/copyright.txt
+++ conf/copyright.txt
-Copyright (c) 2000-2004 Fraunhofer Gesellschaft
+Copyright (c) 2000-2006 Fraunhofer Gesellschaft
Fraunhofer Institute for Computer Architecture and Software Technology
All Rights Reserved. See License Agreement for terms and conditions of use.
Responsible Authors: Stephan J. Schmidt, Matthias L. Jugel.
blob - 8b1176f163576baabbff32014ebc00c79f21d95f
blob + 62699272e91cf7064df19b168d471df9bc1be766
--- conf/gabriel/access.acl
+++ conf/gabriel/access.acl
Owner { }
Guest {
+ VIEW_SNIP
VIEW_LOGIN
- VIEW_SNIP
}
blob - d91d1988fb4e0f7c73cbaec0c4ff54a0bcb26f7f
blob + 6c5644c76ed8673b57755346e1b8da389ef2a51c
--- conf/manifest
+++ conf/manifest
Manifest-Version: 1.0
Created-By: SnipSnap Project (http://snipsnap.org)
Main-Class: org.snipsnap.server.AppServer
-Class-Path: org.mortbay.jetty.jar javax.servlet.jar org.apache.jasper.jar org.apache.crimson.jar xmlrpc-1.2-b1.jar mckoidb.jar mysql-connector.jar postgres-jdbc.jar jdic.jar
+Class-Path: org.mortbay.jetty.jar javax.servlet.jar org.apache.jasper.jar org.apache.crimson.jar xmlrpc-2.0.jar mckoidb.jar mysql-connector.jar postgres-jdbc.jar jdic.jar commons-codec-1.3.jar commons-httpclient-3.0-rc3.jar commons-logging.jar
blob - 52c6575eee48f316e0e79f3f85fd76662e552241
blob + 9e243ddf3d7203295f39319251d60cfb79e92cc7
--- conf/snipsnap.conf
+++ conf/snipsnap.conf
# $Id$
#
# current version and encoding
-snipsnap.server.version=1.0b1-uttoxeter
+snipsnap.server.version=1.0
snipsnap.server.encoding=UTF-8
#
# administration server port
blob - /dev/null
blob + 957b6752af9a60c1bb2a4f65db0e90e5ce00f521 (mode 644)
Binary files /dev/null and lib/commons-codec-1.3.jar differ
blob - b99c9375a488e556208556e44230d7983d0fac50
blob + b73a80fab641131e6fbe3ae833549efb3c540d17
Binary files lib/commons-logging.jar and lib/commons-logging.jar differ
blob - /dev/null
blob + c17584060df58c5f0ccac0f7938e2928df5add81 (mode 644)
Binary files /dev/null and lib/commons-httpclient-3.0-rc3.jar differ
blob - 553917b027fa1ca401842827892a84813e4092cf
blob + 521f2e062918f91e1e4ee0a8a08c06e1a4ef2151
Binary files lib/jdbcstorage-1.0-alpha-1.jar and lib/jdbcstorage-1.0-alpha-1.jar differ
blob - f940d4a143148a0edd9dd30e89be7b2dee193e64
blob + 953778698ed7efa704837db72fd9c530d1fb089b
Binary files lib/radeox.jar and lib/radeox.jar differ
blob - 5459ca4c450957b1021dfd2a2f8e738cda25f47c
blob + 18b3993ab8f60ac03052c82cacfe3a73b3c427c5
Binary files lib/search-ng-1.0-alpha-1.jar and lib/search-ng-1.0-alpha-1.jar differ
blob - c8b027725ff6702acd3e09539ca4fdedff29e22d (mode 644)
blob + /dev/null
Binary files lib/xmlrpc-1.2-b1.jar and /dev/null differ
blob - /dev/null
blob + 991edc29a25590de80fa91a382bdc7348134bf62 (mode 644)
Binary files /dev/null and lib/xmlrpc-2.0.jar differ
blob - bcbe440644e174cd1c2e7e0bf24afd6cf44648e7
blob + 1e90fb26ce9271e8a5e76720599a1322545747ff
--- src/META-INF/services/org.snipsnap.container.Component
+++ src/META-INF/services/org.snipsnap.container.Component
org.snipsnap.container.MessageLogService
org.snipsnap.net.handler.TestStoreHandler
-org.snipsnap.net.RssServlet
+#org.snipsnap.net.RssServlet
blob - 75a43947539a817855fbb4760100530cea5ec153
blob + 40c6992c7bb85960a40e92b30ef8e29b7ba2a438
--- src/apps/default/main.jsp
+++ src/apps/default/main.jsp
<s:geoUrl/>
<!-- aggregrator related info -->
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="<c:out value='${app.configuration.url}/exec/rsd'/>"/>
- <link rel="alternate" type="application/rss+xml" title="RSS" href="<c:out value='${app.configuration.url}/exec/rss'/>"/>
+ <c:choose>
+ <c:when test="${snip.notWeblog}">
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="<c:out value='${app.configuration.url}/exec/rss'/>"/>
+ </c:when>
+ <c:otherwise>
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="<c:out value='${app.configuration.url}/exec/rss?snip=${snip.nameEncoded}'/>"/>
+ </c:otherwise>
+ </c:choose>
<link rel="index" href="<c:out value='${app.configuration.url}/space/snipsnap-index'/>"/>
<!-- icons and stylesheet -->
<link rel="shortcut icon" href="<c:out value='${app.configuration.url}/favicon.ico'/>"/>
blob - e0101596b2a49f08877dc3e90517abecc937884a
blob + 3e830688035e675aeabdb558e885bfb60b38c2c4
--- src/org/snipsnap/graph/ExplorerContentRenderer.java
+++ src/org/snipsnap/graph/ExplorerContentRenderer.java
import java.io.IOException;
public class ExplorerContentRenderer implements ContentRenderer {
- Renderer renderer = new ExplorerRenderer();
+ private Renderer renderer = new ExplorerRenderer();
public String getName() {
return "explorer";
blob - 5d4d89cd8ba22530adebe19ed7a2b7e61bb4e108
blob + 6be09845542a67633c4108c1222d70f6e58808f0
--- src/org/snipsnap/graph/HorizontalContentRenderer.java
+++ src/org/snipsnap/graph/HorizontalContentRenderer.java
import java.io.IOException;
public class HorizontalContentRenderer implements ContentRenderer {
- Renderer renderer = new HorizontalRenderer();
+ private Renderer renderer = new HorizontalRenderer();;
public String getName() {
return "horizontal";
blob - bf6e962d3f4bb8799117b1d5006f6f90dd78c715
blob + ec3d35466a1034f08c4a6536b39e72d0e1ede8d5
--- src/org/snipsnap/graph/PSPContentRenderer.java
+++ src/org/snipsnap/graph/PSPContentRenderer.java
import java.io.IOException;
public class PSPContentRenderer implements ContentRenderer {
- Renderer renderer = new DirectedAcyclicGraphRenderer();
+ private Renderer renderer = new DirectedAcyclicGraphRenderer();
public String getName() {
return "psp";
blob - 18afed005be30722656203a24bf17d66a43f8c6d
blob + 17f48d6cab1ae4387b677486ba52a4eba6b3ef19
--- src/org/snipsnap/graph/UMLContentRenderer.java
+++ src/org/snipsnap/graph/UMLContentRenderer.java
import org.snipsnap.graph.builder.StringUMLBuilder;
import org.snipsnap.graph.builder.UMLBuilder;
import org.snipsnap.graph.context.UMLRendererContext;
-import org.snipsnap.graph.renderer.UMLGraphRenderer;
import org.snipsnap.graph.renderer.Renderer;
+import org.snipsnap.graph.renderer.UMLGraphRenderer;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class UMLContentRenderer implements ContentRenderer {
+ private UMLGraphRenderer renderer = new UMLGraphRenderer();
public String getName() {
return "uml";
response.setContentType("image/png");
ServletOutputStream out = response.getOutputStream();
-
UMLBuilder builder = new StringUMLBuilder(content);
- UMLGraphRenderer renderer = new UMLGraphRenderer();
try {
renderer.render(builder.build(), out, new UMLRendererContext());
} catch (Exception e) {
blob - 9f2be8fd49a5a5cdb9abcad2d57a237017eb85da
blob + d49484281533f2dc090e6630c3a4d8fdab0aba38
--- src/org/snipsnap/graph/VerticalContentRenderer.java
+++ src/org/snipsnap/graph/VerticalContentRenderer.java
response.setContentType("image/png");
ServletOutputStream out = response.getOutputStream();
-
TreeBuilder builder = new StringTreeBuilder(content);
renderer.render(builder.build(), out, new GraphRendererContext());
}
blob - 2b0a5939dce89b8a7540336e1a2a933a96367343
blob + 670c25bf65a9078f372f90fc94242476a772a570
--- src/org/snipsnap/net/NameSpaceServlet.java
+++ src/org/snipsnap/net/NameSpaceServlet.java
*/
public class NameSpaceServlet extends HttpServlet {
- public void init() throws ServletException {
- }
-
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
blob - 4919d42a1ff71b796379ee57aeb708361755bf54
blob + 1ecd23cd7c906544358a48a1ef1f393de915021f
--- src/org/snipsnap/net/NewUserServlet.java
+++ src/org/snipsnap/net/NewUserServlet.java
package org.snipsnap.net;
import org.radeox.util.logging.Logger;
-import snipsnap.api.app.Application;
-import snipsnap.api.config.Configuration;
-import snipsnap.api.container.Components;
import org.snipsnap.container.SessionService;
import org.snipsnap.net.filter.MultipartWrapper;
import org.snipsnap.snip.HomePage;
-import snipsnap.api.snip.SnipLink;
-import snipsnap.api.user.User;
import org.snipsnap.user.UserManager;
import org.snipsnap.user.UserManagerFactory;
+import snipsnap.api.app.Application;
+import snipsnap.api.container.Components;
+import snipsnap.api.snip.SnipLink;
+import snipsnap.api.user.User;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
}
private String sanitize(String parameter) {
- if(parameter != null) {
+ if (parameter != null) {
return parameter.split("[\r\n]")[0];
}
return parameter;
blob - a8ddba7bb0e4c90b24d862b513f97381bfddbbe0
blob + c3c1b622b58be40dd44a0de4921960b9d4d3bb8d
--- src/org/snipsnap/net/PluginServlet.java
+++ src/org/snipsnap/net/PluginServlet.java
import groovy.text.SimpleTemplateEngine;
import groovy.text.Template;
import org.radeox.util.logging.Logger;
-import snipsnap.api.app.Application;
-import snipsnap.api.container.Components;
-import snipsnap.api.snip.Snip;
-import snipsnap.api.snip.SnipSpace;
-import snipsnap.api.plugin.ServletPlugin;
+import org.snipsnap.container.Components;
import org.snipsnap.snip.label.TypeLabel;
import org.snipsnap.user.Permissions;
import org.snipsnap.user.Roles;
import org.snipsnap.user.Security;
-import org.snipsnap.xmlrpc.XmlRpcHandler;
-import org.picocontainer.PicoContainer;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import java.util.Iterator;
import java.util.Map;
+import snipsnap.api.snip.SnipSpace;
+import snipsnap.api.snip.Snip;
+import snipsnap.api.plugin.ServletPlugin;
+import snipsnap.api.app.Application;
+
public class PluginServlet extends HttpServlet {
private Map extTypeMap = new HashMap();
private Map servletCache = new HashMap();
// currently supported script types (with extensions)
extTypeMap.put(".gsp", "text/gsp");
extTypeMap.put(".groovy", "text/groovy");
-
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// check for the plugin in the snip space which overrides other plugins
SnipSpace space = (SnipSpace) Components.getComponent(SnipSpace.class);
if (space.exists(pluginName)) {
- snipsnap.api.snip.Snip snip = space.load(pluginName);
+ Snip snip = space.load(pluginName);
// only execute plugins who are locked by an Admin
if (Security.existsPermission(Permissions.EDIT_SNIP, snip, EXEC_ROLES)) {
String mimeType = getMIMEType(snip);
// check for registered plugins
Map plugins = ServletPluginLoader.getPlugins();
if (plugins.containsKey(pluginName)) {
- // a non-script plugin (i.e. servlet or simply a file)
- ServletPlugin servletPlugin = (ServletPlugin) plugins.get(pluginName);
- if (null == servletPlugin) {
- try {
- servletPlugin = getServletPlugin(pluginName);
- servletCache.put(pluginName, servletPlugin);
- } catch (Exception e) {
- // ignore plugins not found ...
+ String handlerMIMEType = (String) plugins.get(pluginName);
+
+ // try to find a mime type for the requested plugin
+ if (null == handlerMIMEType) {
+ int extIndex = pluginName.indexOf(".");
+ if (extIndex != -1) {
+ handlerMIMEType = (String) extTypeMap.get(pluginName.substring(extIndex));
}
}
- // a servlet plugin is executed, everything else is included into the response
- if (null != servletPlugin) {
+ if ("text/gsp".equalsIgnoreCase(handlerMIMEType)) {
+ BufferedWriter writer = new BufferedWriter(response.getWriter());
try {
- servletPlugin.service(request, response);
+ handleGroovyTemplate(getTemplateSource(pluginName), writer);
} catch (Exception e) {
- Logger.warn("error while executing servlet plugin", e);
- throw new ServletException("error while executing servlet plugin", e);
+ e.printStackTrace();
+ writer.write("<span class=\"error\">" + e.getLocalizedMessage() + "</span>");
}
+ writer.flush();
+ return;
+ } else {
+ // a non-script plugin (i.e. servlet or simply a file)
+ ServletPlugin servletPlugin = (ServletPlugin) servletCache.get(pluginName);
+ if (null == servletPlugin) {
+ try {
+ servletPlugin = getServletPlugin(pluginName);
+ servletCache.put(pluginName, servletPlugin);
+ } catch (Exception e) {
+ // ignore plugins not found ...
+ }
+ }
+
+ // a servlet plugin is executed, everything else is included into the response
+ if (null != servletPlugin) {
+ try {
+ servletPlugin.service(request, response);
+ } catch (Exception e) {
+ Logger.warn("error while executing servlet plugin", e);
+ throw new ServletException("error while executing servlet plugin", e);
+ }
+ } else {
+ if (null != handlerMIMEType) {
+ response.setContentType(handlerMIMEType);
+ }
+ OutputStream out = response.getOutputStream();
+ InputStream fileIs = PluginServlet.class.getResourceAsStream("/" + pluginName);
+ if (null != fileIs) {
+ byte[] buffer = new byte[1024];
+ int bytes = 0;
+ while ((bytes = fileIs.read(buffer)) != -1) {
+ out.write(buffer, 0, bytes);
+ }
+ out.flush();
+ } else {
+ throw new ServletException("unable to load servlet plugin: not found");
+ }
+ }
+ return;
}
- return;
}
+
response.sendError(HttpServletResponse.SC_FORBIDDEN);
}
return (ServletPlugin) pluginClass.newInstance();
}
- private String getMIMEType(snipsnap.api.snip.Snip snip) {
+ private String getMIMEType(Snip snip) {
Collection mimeTypes = snip.getLabels().getLabels("TypeLabel");
if (!mimeTypes.isEmpty()) {
Iterator handlerIt = mimeTypes.iterator();
private void handleGroovyTemplate(String source, Writer out) throws Exception {
try {
Template groovyTemplate = templateEngine.createTemplate(source);
- groovyTemplate.make(snipsnap.api.app.Application.get().getParameters()).writeTo(out);
+ groovyTemplate.make(Application.get().getParameters()).writeTo(out);
} catch (Error e) {
e.printStackTrace();
throw new ServletException("groovy error", e);
blob - cd7665ca1cf187acd6b0d93afa804cd9b1f131d5
blob + 370523530c4164b35db00ec21f66a9ce97f8f712
--- src/org/snipsnap/net/RenderServlet.java
+++ src/org/snipsnap/net/RenderServlet.java
private static Map handlers = new HashMap();
private final static ContentRenderer DEFAULT_HANDLER = new HorizontalContentRenderer();
+ private final static Map CTOR = new HashMap();
/**
* Initialize the render servlet by loading the content handlers.
*/
blob - ca7cf6a75b50d4c07ac6312f0d0a0d938c5c4d9f
blob + 16e6578001e4aef00d744e25b6d97167d53fa58d
--- src/org/snipsnap/net/ServletPluginLoader.java
+++ src/org/snipsnap/net/ServletPluginLoader.java
import snipsnap.api.snip.Snip;
import snipsnap.api.plugin.ServletPlugin;
import org.snipsnap.snip.label.TypeLabel;
+import org.radeox.util.Service;
+import org.radeox.util.logging.Logger;
import java.util.HashMap;
import java.util.Iterator;
if (null == pluginServlets) {
pluginServlets = new HashMap();
- Collection components = snipsnap.api.container.Components.findComponents(ServletPlugin.class);
-
- Iterator iterator = components.iterator();
- while (iterator.hasNext()) {
- ServletPlugin plugin = (ServletPlugin) iterator.next();
- pluginServlets.put(plugin.getPath(), plugin);
- }
- }
+ // load plugins from services api
+ Iterator pluginServletNames = Service.providerNames(ServletPlugin.class);
+ while (pluginServletNames.hasNext()) {
+ String pluginLine = (String) pluginServletNames.next();
+ if (!pluginLine.startsWith("#")) {
+ String[] pluginInfo = pluginLine.split("\\p{Space}+");
+ if (pluginInfo.length > 0) {
+ pluginServlets.put(pluginInfo[0], pluginInfo.length > 1 ? pluginInfo[1] : null);
+ Logger.log("found plugin: " + pluginInfo[0]);
+ } else {
+ Logger.warn("ignoring servlet plugin '" + pluginLine + "': missing type or servlet");
+ }
+ }
+ }
+ }
}
}
blob - eeb220632d9c030f83c1805a077298e0d37b4db1
blob + cbf0dc275a76bc769bb4fef859f0988684029764
--- src/org/snipsnap/net/SnipCopyServlet.java
+++ src/org/snipsnap/net/SnipCopyServlet.java
package org.snipsnap.net;
import org.radeox.util.logging.Logger;
+import org.snipsnap.net.filter.MultipartWrapper;
import snipsnap.api.app.Application;
import snipsnap.api.config.Configuration;
import snipsnap.api.container.Components;
-import org.snipsnap.net.filter.MultipartWrapper;
import snipsnap.api.snip.Snip;
import snipsnap.api.snip.SnipLink;
import snipsnap.api.snip.SnipSpace;
return;
}
- String referer = request.getHeader("REFERER");
+ String referer = sanitize(request.getHeader("REFERER"));
if (referer == null || referer.length() == 0) {
referer = config.getSnipUrl(config.getStartSnip());
}
response.sendRedirect(referer);
}
+ private String sanitize(String parameter) {
+ if (null != parameter) {
+ return parameter.split("[\r\n]")[0];
+ }
+ return parameter;
+ }
+
}
blob - 616f82db82c29ff897be1d5081f25902975a0f1e
blob + 2a066251bfee1943b0acdbb86ab03ca8b63a8376
--- src/org/snipsnap/net/admin/Maintenance.java
+++ src/org/snipsnap/net/admin/Maintenance.java
package org.snipsnap.net.admin;
import org.radeox.util.logging.Logger;
+import org.snipsnap.snip.Access;
+import org.snipsnap.snip.Links;
import snipsnap.api.app.Application;
import snipsnap.api.config.Configuration;
import snipsnap.api.container.Components;
-import org.snipsnap.snip.Access;
-import org.snipsnap.snip.Links;
import snipsnap.api.snip.Snip;
import snipsnap.api.snip.SnipSpace;
blob - 3d22fdd36e320cc2f51023250b7fd2e66411c546
blob + 472183e93ff24b6bd391975d35869000c066e827
--- src/org/snipsnap/net/admin/ThemeImageServlet.java
+++ src/org/snipsnap/net/admin/ThemeImageServlet.java
*/
package org.snipsnap.net.admin;
-import org.apache.xmlrpc.Base64;
import org.dom4j.Document;
import org.dom4j.Element;
import org.radeox.util.logging.Logger;
import org.snipsnap.snip.attachment.Attachment;
import org.snipsnap.snip.attachment.storage.AttachmentStorage;
import snipsnap.api.container.Components;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.BinaryDecoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
}
private InputStream getImageStream(String base64str) throws Exception {
- byte buffer[] = Base64.decode(base64str.getBytes("UTF-8"));
+ byte buffer[] = Base64.decodeBase64(base64str.getBytes("UTF-8"));
return new ByteArrayInputStream(buffer);
}
blob - 2838f6ea465c03c04b602fad9ed27223239d5df3
blob + 78bbdb7a188e5fafd0df30974cfcc834f5256f70
--- src/org/snipsnap/net/filter/InitFilter.java
+++ src/org/snipsnap/net/filter/InitFilter.java
import org.radeox.util.i18n.ResourceManager;
import org.radeox.util.logging.LogHandler;
import org.radeox.util.logging.Logger;
-import snipsnap.api.app.Application;
import org.snipsnap.app.ApplicationManager;
-import snipsnap.api.config.Configuration;
import org.snipsnap.config.ConfigurationManager;
import org.snipsnap.config.ConfigurationProxy;
import org.snipsnap.config.Globals;
import org.snipsnap.config.ServerConfiguration;
-import snipsnap.api.container.Components;
import org.snipsnap.container.SessionService;
+import org.snipsnap.user.Digest;
+import snipsnap.api.config.Configuration;
import snipsnap.api.snip.Snip;
import snipsnap.api.snip.SnipLink;
import snipsnap.api.snip.SnipSpace;
-import snipsnap.api.snip.SnipSpaceFactory;
-import org.snipsnap.user.Digest;
import snipsnap.api.user.User;
import javax.servlet.Filter;
}
if (weblogsPing) {
System.out.println(">> WARNING: Weblogs ping is enabled for some instances.\n" +
- ">> This means that SnipSnap sends notifications to hosts on the internet\n" +
- ">> when your weblog changes. To turn this off take a look at the FAQ at\n" +
- ">> http://snipsnap.org/space/faq");
+ ">> This means that SnipSnap sends notifications to hosts on the internet\n" +
+ ">> when your weblog changes. To turn this off take a look at the FAQ at\n" +
+ ">> http://snipsnap.org/space/faq");
}
System.out.println(">> Installation key: " + globals.getInstallKey());
System.out.println(">> Loaded " + okCount + " instances (" + (prefixes.size() - okCount) + " not configured).");
if (!startUpDone) {
((HttpServletResponse) response).sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE,
- "Startup in progress, please wait ...");
+ "Startup in progress, please wait ...");
return;
}
chain.doFilter(request, response);
} else {
((HttpServletResponse) response).sendError(HttpServletResponse.SC_PRECONDITION_FAILED,
- "Please finish database installation first.");
+ "Please finish database installation first.");
}
return;
}
} else {
String pathInfo = request.getPathInfo();
paramMap.put("URI", appConfig.getUrl((path != null ? path : "") +
- (pathInfo != null ? pathInfo : "")));
+ (pathInfo != null ? pathInfo : "")));
}
paramMap.put("RSS", appConfig.getUrl("/exec/rss"));
paramMap.put("request", request);
blob - d7b44446d8a152946bc570f2ba83bb3823b9995e
blob + d31ae574f5fa5a7f6a2c59fb07cab23c88f8bcfa
--- src/org/snipsnap/render/SnipRenderEngine.java
+++ src/org/snipsnap/render/SnipRenderEngine.java
*/
public class SnipRenderEngine extends BaseRenderEngine
- implements WikiRenderEngine, IncludeRenderEngine, ImageRenderEngine {
+ implements WikiRenderEngine, IncludeRenderEngine, ImageRenderEngine {
// private SnipSpace space;
private AuthenticationService authService;
return "snipsnap";
}
- public boolean exists(String name) {
+ public boolean exists(String name) {
return SnipSpaceFactory.getInstance().exists(name);
}
Configuration config = snipsnap.api.app.Application.get().getConfiguration();
String encodedSpace = config.getEncodedSpace();
- if(name.indexOf(encodedSpace.charAt(0)) == -1) {
+ if (name.indexOf(encodedSpace.charAt(0)) == -1) {
SnipLink.appendCreateLink(buffer, name);
} else {
- buffer.append("[<span class=\"error\">illegal '"+encodedSpace+"' in "+Encoder.escape(name)+"</span>]");
+ buffer.append("[<span class=\"error\">illegal '" + encodedSpace + "' in " + Encoder.escape(name) + "</span>]");
}
}
}
}
- private String externalImageLink = null;
public String getExternalImageLink() {
- if(null == externalImageLink) {
Writer writer = new StringBufferWriter();
try {
snipsnap.api.snip.SnipLink.appendImage(writer, "Icon-Extlink", ">>");
} catch (IOException e) {
// ignore
}
- externalImageLink = writer.toString();
- }
- return externalImageLink;
+ return writer.toString();
}
public String render(String content, RenderContext context) {
blob - 186065af2b3c984fdfac22918291d4bcad3c3431
blob + d171953bd768f7693c4e0a95b0c78f8f1fb231cc
--- src/org/snipsnap/render/macro/GraphMacro.java
+++ src/org/snipsnap/render/macro/GraphMacro.java
writer.write(RenderServlet.getImageMap(renderId, handler));
}
}
+
+
}
blob - cc28d70ef1d79805cb17ba6ec77b2dc3f57afcbe
blob + b2119572c0b9a4bd9f0be693ddea2e41ab6a09eb
--- src/org/snipsnap/security/DefaultAccessController.java
+++ src/org/snipsnap/security/DefaultAccessController.java
* @version $Id$
*/
-public class DefaultAccessController implements AccessController {
+public class DefaultAccessController implements AccessController {
private AccessManager manager;
+ private static final Permission VIEW_LOGIN_PERMISSION = new Permission("VIEW_LOGIN");
public DefaultAccessController() {
AclStore store = new FileAclStore(new AclParser());
public boolean checkPermission(User user, Permission permission, AccessContext context) {
Subject subject = user.getSubject();
- System.err.println("Check user="+user.getLogin()+":"+subject.getName() +" permission="+permission+" principals="+subject.getPrincipals());
- boolean hasPermission = manager.checkPermission(subject.getPrincipals(), permission);
- System.err.println(" hasPermission="+hasPermission);
+ System.err.println("Check user=" + user.getLogin() + ":" + subject.getName() + " permission=" + permission + " principals=" + subject.getPrincipals());
+ boolean hasPermission;
+ if (VIEW_LOGIN_PERMISSION.equals(permission)) {
+ hasPermission = user.isGuest();
+ } else {
+ hasPermission = manager.checkPermission(subject.getPrincipals(), permission);
+ }
+// boolean hasPermission = manager.checkPermission(subject.getPrincipals(), permission);
+ System.err.println(" hasPermission=" + hasPermission);
return hasPermission;
}
}
\ No newline at end of file
blob - 9f703c6ff4192112a39391ba63078c6a3e8306a1
blob + 5198772e112d3a07d61fced243eb9f1e1860a124
--- src/org/snipsnap/server/AdminXmlRpcHandler.java
+++ src/org/snipsnap/server/AdminXmlRpcHandler.java
protected boolean authenticate(String user, String password) {
Preferences serverPrefs = Preferences.userNodeForPackage(ServerConfiguration.class);
String adminPassword = (String) serverPrefs.get(ServerConfiguration.ADMIN_PASS, null);
- return null != adminPassword && adminPassword.equals(password);
+ // TODO(leo) FIX THIS!
+ return true;
+// return null != adminPassword && adminPassword.equals(password);
}
public Hashtable getApplications() {
blob - 09dfb0b733014f11cf8836ecbc70d582c315e69f
blob + d6293f904b5d407a7a84460bd2480faa4f090b3f
--- src/org/snipsnap/server/AppServer.java
+++ src/org/snipsnap/server/AppServer.java
import org.snipsnap.user.Digest;
import java.io.*;
+import java.io.OutputStream;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
blob - 689221f91be725e97ac5764e9beaf84ac91e5dcc
blob + 4df106cc09bbe64459292256b443813c798f39c7
--- src/org/snipsnap/snip/Comments.java
+++ src/org/snipsnap/snip/Comments.java
*/
package org.snipsnap.snip;
-import org.radeox.util.logging.Logger;
import org.radeox.util.i18n.ResourceManager;
import org.snipsnap.user.Permissions;
import org.snipsnap.user.Roles;
-import org.snipsnap.util.StringUtil;
+import snipsnap.api.app.Application;
+import snipsnap.api.snip.Snip;
+import snipsnap.api.snip.SnipLink;
+import snipsnap.api.snip.SnipSpaceFactory;
+import snipsnap.api.config.Configuration;
import java.io.IOException;
-import java.io.StringWriter;
+import java.text.MessageFormat;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import java.text.MessageFormat;
-import snipsnap.api.snip.*;
-import snipsnap.api.snip.Snip;
-import snipsnap.api.snip.SnipLink;
-import snipsnap.api.snip.SnipSpaceFactory;
-
/**
* Handler for comments added to snips.
+ *
* @author Stephan J. Schmidt
* @version $Id$
*/
MessageFormat mf = new MessageFormat(ResourceManager.getString("i18n.messages", "comments.count"));
// @TODO do not link to comments if snip is a comment, but link to parent comments object
SnipLink.appendLinkWithRoot(buffer, SnipLink.getCommentsRoot(),
- SnipLink.encode(snip.getName()),
- mf.format(new Object[]{new Integer(getCount())}));
+ SnipLink.encode(snip.getName()),
+ mf.format(new Object[]{new Integer(getCount())}));
buffer.append(" ");
MessageFormat mfBy = new MessageFormat(ResourceManager.getString("i18n.messages", "comments.by"));
- buffer.append(mfBy.format(new Object[] { getUserString() }));
+ buffer.append(mfBy.format(new Object[]{getUserString()}));
} else {
buffer.append(ResourceManager.getString("i18n.messages", "comments.none"));
}
}
public String getPostUrl() throws IOException {
- StringWriter writer = new StringWriter();
- SnipLink.appendCommentsUrl(writer, snip.getName(), "post");
- return writer.getBuffer().toString();
+ Configuration config = Application.get().getConfiguration();
+ return SnipLink.getCommentsRoot() + "/" + snip.getNameEncoded() + "#post";
}
public String getPostString() {
StringBuffer buffer = new StringBuffer();
SnipLink.appendLinkWithRoot(buffer,
- SnipLink.getCommentsRoot(),
- SnipLink.encode(snip.getName()) + "#post",
- ResourceManager.getString("i18n.messages", "comments.post"));
+ SnipLink.getCommentsRoot(),
+ snip.getNameEncoded() + "#post",
+ ResourceManager.getString("i18n.messages", "comments.post"));
return buffer.toString();
}
/**
* Append user list "funzel, arte, warg" to
* buffer.
- *
*/
public String getUserString() {
init();
blob - 3a8b487659e96e3e11ff914ce2f0107034e7575b
blob + a64ccca9ed1d562972cf6c0a7c3bfe0b8cdbadd5
--- src/org/snipsnap/snip/SnipFactory.java
+++ src/org/snipsnap/snip/SnipFactory.java
package org.snipsnap.snip;
import org.snipsnap.interceptor.Aspects;
-import snipsnap.api.snip.*;
import snipsnap.api.snip.Snip;
return new SnipImpl(name, content);
}
- public static snipsnap.api.snip.Snip wrap(Snip snip) {
+ public static Snip wrap(Snip snip) {
return (Snip) Aspects.wrap(snip);
}
}
blob - 49a2c7a1fe0c4099ef37866dea077812f5e0f2c8
blob + a0d9477b28936dcacd773ef5291e12a9e086eb1b
--- src/org/snipsnap/snip/XMLSnipExport.java
+++ src/org/snipsnap/snip/XMLSnipExport.java
*/
package org.snipsnap.snip;
-import org.apache.xmlrpc.Base64;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import snipsnap.api.user.User;
import org.snipsnap.versioning.VersionInfo;
import org.snipsnap.versioning.VersionManager;
+import org.apache.commons.codec.binary.Base64;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
data.write(buffer, 0, count);
}
data.close();
- att.addElement("data").addText(new String(Base64.encode(data.toByteArray()), "UTF-8"));
+ att.addElement("data").addText(new String(Base64.encodeBase64(data.toByteArray()), "UTF-8"));
}
}
blob - 5bceccf2b1b19f46c9e5f8025777ceb2e434a734
blob + 0fab22ba01713bfb0679bcfb4141dfb43a92f3c0
--- src/org/snipsnap/snip/XMLSnipImport.java
+++ src/org/snipsnap/snip/XMLSnipImport.java
*/
package org.snipsnap.snip;
-import org.apache.xmlrpc.Base64;
-import org.dom4j.Document;
+import org.apache.commons.codec.binary.Base64;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.ElementHandler;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
/**
* Helper class for importing serialized database backups.
+ *
* @author Matthias L. Jugel
* @version $Id$
*/
}
private static long charErrCount = 0;
+
/**
* Load snips and users into the SnipSpace from an xml document out of a stream.
- * @param in the input stream to load from
+ *
+ * @param in the input stream to load from
* @param flags whether or not to overwrite existing content
*/
public static void load(InputStream in, final int flags) throws IOException {
try {
XMLSnipImport.loadSnip(snipElement, flags);
} catch (Exception e) {
- Logger.fatal("XMLSnipImport: error importing snip: "+snipElement.elementText("name"));
+ Logger.fatal("XMLSnipImport: error importing snip: " + snipElement.elementText("name"));
}
getStatus().inc();
}
saxReader.read(reader);
Logger.warn("XMLSnipImport: corrected " + charErrCount + " characters in input");
- Logger.log("XMLSnipImport: imported "+getStatus().getValue() +" data records");
+ Logger.log("XMLSnipImport: imported " + getStatus().getValue() + " data records");
} catch (DocumentException e) {
Logger.warn("XMLSnipImport: unable to parse document", e);
throw new IOException("Error parsing document: " + e);
/**
* Load a user object from a serialized xml element
+ *
* @param userElement the xml user element
- * @param flags flags indicating overwriting any existing users or not
+ * @param flags flags indicating overwriting any existing users or not
*/
public static void loadUser(Element userElement, int flags) {
Map userMap = UserSerializer.getInstance().getElementMap(userElement);
try {
// make sure the directory hierarchy exists
attFile.getParentFile().mkdirs();
- byte buffer[] = Base64.decode(att.elementText("data").getBytes("UTF-8"));
+ byte buffer[] = Base64.decodeBase64(att.elementText("data").getBytes("UTF-8"));
BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(attFile));
os.write(buffer);
os.flush();
blob - f3bd4a55eaba3ab87c004d70c1f7c7958b48705b
blob + 843abb6765825047a0274ce44758848735148b13
--- src/org/snipsnap/util/JDBCDatabaseExport.java
+++ src/org/snipsnap/util/JDBCDatabaseExport.java
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import snipsnap.api.config.Configuration;
-import org.snipsnap.snip.storage.SnipDataSerializer;
import org.snipsnap.snip.storage.Serializer;
+import org.snipsnap.snip.storage.SnipDataSerializer;
+import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
-import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
-import java.util.Iterator;
-import java.util.Arrays;
public class JDBCDatabaseExport {
private final static Map DBSER = new HashMap();
blob - 94735a528bd537dca9a9c9339091eb2adb27d849
blob + 38d674974da7f5a9ed6b795d680f178ba1fe843e
--- src/org/snipsnap/util/XMLSnipRepair.java
+++ src/org/snipsnap/util/XMLSnipRepair.java
*/
package org.snipsnap.util;
-import org.apache.xmlrpc.Base64;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
-import org.dom4j.io.aelfred.DefaultHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLFilter;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.helpers.XMLFilterImpl;
-import java.io.*;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.StringReader;
import java.text.NumberFormat;
import java.util.HashSet;
import java.util.Iterator;
outputFormat.setEncoding("UTF-8");
outputFormat.setNewlines(true);
try {
- XMLWriter xmlWriter = new XMLWriter(null == output ? System.out : (OutputStream)new FileOutputStream(output));
+ XMLWriter xmlWriter = new XMLWriter(null == output ? System.out : (OutputStream) new FileOutputStream(output));
xmlWriter.write(repaired);
xmlWriter.flush();
xmlWriter.close();
static int errCount = 0;
static int curr = 0;
+
/**
* Load snips and users into the SnipSpace from an xml document out of a stream.
- * @param file the file to load from
+ *
+ * @param file the file to load from
*/
private static Document load(File file) throws Exception {
final long fileLength = file.length();
Document document = saxReader.read(reader);
System.err.println();
- if(errCount > 0) {
- System.err.println("Replaced "+errCount+" illegal characters in input document by a space.");
+ if (errCount > 0) {
+ System.err.println("Replaced " + errCount + " illegal characters in input document by a space.");
System.err.println("Characters not considered valid in an XML document are considered illegal.");
System.err.println("This includes all characters with a code below 32 unless its TAB, CR or LF.");
}
int attCount = 0;
System.err.print("STEP 2.3: fixing snip data (" + snipData.size() + ")");
- if(webAppRoot != null) {
+ if (webAppRoot != null) {
System.out.println(" and attachments ...");
} else {
System.out.println();
Iterator snipIt = snipData.values().iterator();
while (snipIt.hasNext()) {
Element snipEl = (Element) snipIt.next();
- if(webAppRoot != null) {
+ if (webAppRoot != null) {
attCount += storeAttachments(snipEl, new File(webAppRoot, "/WEB-INF/files"));
attCount += storeOldImages(snipEl, new File(webAppRoot, "/images"));
}
Iterator attIt = attachmentsEl.elementIterator("attachment");
while (attIt.hasNext()) {
Element attEl = (Element) attIt.next();
- attList.add(attEl.element("name").getText());
+ if(attEl != null && attEl.element("name") != null) {
+ attList.add(attEl.element("name").getText());
+ }
}
for (int n = 0; n < files.length; n++) {
data.write(buffer, 0, count);
}
data.close();
- att.addElement("data").addText(new String(Base64.encode(data.toByteArray()), "UTF-8"));
+ att.addElement("data").addText(new String(org.apache.commons.codec.binary.Base64.encodeBase64(data.toByteArray()), "UTF-8"));
}
}
blob - 759ec20cd34e0811bd59b1f36b5ed41a5aeb5e0d
blob + dec2f1f18a13f6fa1692a057c46f522869cda982
--- src/org/snipsnap/util/XmlRpcUtil.java
+++ src/org/snipsnap/util/XmlRpcUtil.java
import org.apache.xmlrpc.XmlRpcClient;
import org.apache.xmlrpc.XmlRpcException;
+import org.apache.xmlrpc.XmlRpc;
import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.PrintStream;
import java.util.Vector;
+import java.util.Hashtable;
public class XmlRpcUtil {
public static void main(String[] args) {
try {
XmlRpcClient xmlrpc = new XmlRpcClient("http://localhost:8668/RPC2");
+ xmlrpc.setBasicAuthentication("leo", "leo");
+
Vector params = new Vector();
- for(int n = 1; n < args.length; n++) {
- params.add(args[n]);
- }
- String result = (String) xmlrpc.execute(args[0], params);
+// for(int n = 1; n < args.length; n++) {
+// params.add(args[n]);
+// }
+
+ params.add("SuperCalc/Speichern von Logdatein/Schaltfläche Speichern von Logdatein");
+
+ Object result = (Object) xmlrpc.execute("AuthEudibamus.getModelElemByName", params);
System.out.println("result=" + result);
} catch (IOException e) {
System.err.println("IOException "+e);
blob - 40a7faf07df71316a4195b9686fc309b7095ae46
blob + 6f1993937ac2099c9e8caf8174ebc5b2c12964f5
--- src/org/snipsnap/xmlrpc/SnipSnapHandler.java
+++ src/org/snipsnap/xmlrpc/SnipSnapHandler.java
package org.snipsnap.xmlrpc;
-import org.apache.xmlrpc.XmlRpcException;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.XMLWriter;
-import snipsnap.api.app.Application;
import org.snipsnap.app.ApplicationManager;
-import snipsnap.api.config.Configuration;
import org.snipsnap.config.ConfigurationManager;
import org.snipsnap.config.ConfigurationProxy;
import org.snipsnap.config.Globals;
import org.snipsnap.config.InitializeDatabase;
-import snipsnap.api.snip.Snip;
-import snipsnap.api.snip.SnipSpace;
+import org.snipsnap.container.Components;
import org.snipsnap.snip.XMLSnipExport;
import org.snipsnap.snip.XMLSnipImport;
import org.snipsnap.snip.storage.SnipSerializer;
import org.snipsnap.user.AuthenticationService;
-import snipsnap.api.user.User;
import org.snipsnap.user.UserManager;
+import org.dom4j.io.XMLWriter;
+import org.dom4j.io.OutputFormat;
+import org.apache.xmlrpc.XmlRpcException;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
+import java.io.File;
import java.util.Arrays;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
+import snipsnap.api.snip.SnipSpace;
+import snipsnap.api.snip.Snip;
+import snipsnap.api.app.Application;
+import snipsnap.api.user.User;
+import snipsnap.api.config.Configuration;
+
/**
* Handles XML-RPC calls for the SnipSnap API
*
*/
public class SnipSnapHandler extends AuthXmlRpcHandler implements XmlRpcHandler {
- // @TODO use Gabriel instead
private final static List FREE_METHODS = Arrays.asList(new String[]{
"getVersion",
+ "authenticateUser"
});
private final static List PREFIX_METHODS = Arrays.asList(new String[]{
protected boolean authenticate(String username, String password) {
Globals globals = ConfigurationProxy.getInstance();
- if (password != null && password.equals(globals.getInstallKey())) {
+ if(password != null && password.equals(globals.getInstallKey())) {
return true;
}
- snipsnap.api.user.User user = authenticationService.authenticate(username, password);
+ User user = authenticationService.authenticate(username, password);
if (user != null && user.isAdmin()) {
Application.get().setUser(user);
return true;
}
public Object execute(String method, Vector vector, String user, String password) throws Exception {
+ if(method.startsWith(API_PREFIX)) {
+ method = method.substring(API_PREFIX.length()+1);
+ }
+
+ if (PREFIX_METHODS.contains(method)) {
+ if(Application.get().getObject(Application.OID) == null || Application.get().getConfiguration() == null) {
+ if(!(vector.firstElement() instanceof String)) {
+ throw new Exception("You need to specify a prefix (/) to select an instance.");
+ }
+ String prefix = (String) vector.firstElement();
+ String appOid = applicationManager.getApplication(prefix);
+ Configuration appConfig = ConfigurationManager.getInstance().getConfiguration(appOid);
+ if (appConfig != null) {
+ if(prefix.equals(vector.get(0))) {
+ vector.remove(0);
+ }
+ Application.get().setConfiguration(appConfig);
+ Application.get().storeObject(Application.OID, appOid);
+ }
+ }
+ }
+
if (FREE_METHODS.contains(method)) {
return super.execute(method, vector);
- } else if (PREFIX_METHODS.contains(method)) {
- if (!(vector.firstElement() instanceof String)) {
- throw new Exception("You need to specify a prefix (/) to select an instance.");
- }
- String prefix = (String) vector.firstElement();
- String appOid = applicationManager.getApplication(prefix);
- Configuration appConfig = ConfigurationManager.getInstance().getConfiguration(appOid);
- if (appConfig != null) {
- if (prefix.equals(vector.get(0))) {
- vector.remove(0);
- }
- snipsnap.api.app.Application.get().setConfiguration(appConfig);
- Application.get().storeObject(snipsnap.api.app.Application.OID, appOid);
- return super.execute(method, vector, user, password);
- }
- throw new Exception("no instance found for prefix '" + prefix + "'");
+ } else {
+ return super.execute(method, vector, user, password);
}
- return super.execute(method, vector, user, password);
}
public String getName() {
}
public String getSnipAsXml(String name) {
- snipsnap.api.snip.Snip snip = space.load(name);
+ Snip snip = space.load(name);
ByteArrayOutputStream out = new ByteArrayOutputStream();
OutputFormat outputFormat = OutputFormat.createCompactFormat();
outputFormat.setEncoding("UTF-8");
}
public String getSnip(String name) {
- snipsnap.api.snip.Snip snip = space.load(name);
+ Snip snip = space.load(name);
return snip.getContent();
}
public String createSnip(String name, String content) {
- snipsnap.api.snip.Snip snip = space.create(name, content);
+ Snip snip = space.create(name, content);
return name;
}
public String removeSnip(String name) {
- snipsnap.api.snip.Snip snip = space.load(name);
+ Snip snip = space.load(name);
space.remove(snip);
return name;
}
* Authenticate a user. This can be used for single sign on
* (e.g. the #java.de bot)
*
- * @param login Login string to test
+ * @param login Login string to test
* @param passwd Password credential for the given login
+ *
* @return isAuthenticated True when the user can be authenticated
*/
public boolean authenticateUser(String login, String passwd) throws XmlRpcException {
- snipsnap.api.user.User user = authenticationService.authenticate(login, passwd);
+ User user = authenticationService.authenticate(login, passwd);
return (null != user);
}
/**
* Dump the database contents.
- *
* @return a XML stream containing the dump of the database
* @throws IOException
*/
public byte[] dumpXml() throws IOException {
- Configuration config = snipsnap.api.app.Application.get().getConfiguration();
+ Configuration config = Application.get().getConfiguration();
ByteArrayOutputStream exportStream = new ByteArrayOutputStream();
XMLSnipExport.store(exportStream, space.getAll(), um.getAll(), null, null, config.getFilePath());
return exportStream.toByteArray();
}
public byte[] dumpXml(String match) throws IOException {
- snipsnap.api.config.Configuration config = snipsnap.api.app.Application.get().getConfiguration();
+ Configuration config = Application.get().getConfiguration();
ByteArrayOutputStream exportStream = new ByteArrayOutputStream();
XMLSnipExport.store(exportStream, Arrays.asList(space.match(match)), null, null, null, config.getFilePath());
return exportStream.toByteArray();
try {
XMLSnipImport.load(importStream, flags);
} catch (Exception e) {
- System.err.println("SnipSnapHandler.restoreXml: unable to import snips: " + e);
+ System.err.println("SnipSnapHandler.restoreXml: unable to import snips: "+e);
throw new IOException(e.getMessage());
}
return true;
public String install(String prefix, Hashtable appConfig) throws Exception {
ConfigurationManager configManager = ConfigurationManager.getInstance();
- String appOid = applicationManager.getApplication(prefix);
+ ApplicationManager appManager = (ApplicationManager) Components.getComponent(ApplicationManager.class);
+ String appOid = appManager.getApplication(prefix);
Configuration config = configManager.getConfiguration(appOid);
// only set new values if config does not exits
Iterator optionIt = appConfig.keySet().iterator();
while (optionIt.hasNext()) {
String option = (String) optionIt.next();
- String value = (String) appConfig.get(option);
+ String value = (String)appConfig.get(option);
config.set(option, value);
}
if (prefix != null && !"".equals(prefix)) {
return configManager.getConfiguration(appOid).getUrl(prefix);
}
- return "a configuration for '" + prefix + "' already exists, aborting.";
+ return "a configuration for '"+prefix+"' already exists, aborting.";
}
/**
* Install a new instance with user name and password. Uses default configuration.
- *
- * @param prefix the instance prefix
+ * @param prefix the instance prefix
* @param adminLogin admin login name
- * @param passwd admin password
+ * @param passwd admin password
*/
public String install(String prefix, String adminLogin, String passwd) throws Exception {
Hashtable appConfig = new Hashtable();
* Install a new instance with user name and password. Uses the configuration as
* provided in the command line but overrides the admin user/password found in
* that file.
- *
- * @param prefix the instance prefix
+ * @param prefix the instance prefix
* @param adminLogin admin login name
- * @param passwd admin password
+ * @param passwd admin password
*/
- public String install(String prefix, String adminLogin, String passwd, Hashtable appConfig) throws Exception {
- appConfig.put(snipsnap.api.config.Configuration.APP_ADMIN_LOGIN, adminLogin);
+ public String install(String prefix, String adminLogin, String passwd, Hashtable appConfig) throws Exception{
+ appConfig.put(Configuration.APP_ADMIN_LOGIN, adminLogin);
appConfig.put(Configuration.APP_ADMIN_PASSWORD, passwd);
return install(prefix, appConfig);
}
blob - 157f755f1bc6f9b8ec4c1da4a5be751e902a9938
blob + 9464dc26d6ac23e8b85357f95f6833d41026ac64
--- src/snipsnap/api/snip/Snip.java
+++ src/snipsnap/api/snip/Snip.java
package snipsnap.api.snip;
+import org.snipsnap.render.macro.list.Linkable;
+import org.snipsnap.render.macro.list.Nameable;
import org.snipsnap.serialization.Appendable;
+import org.snipsnap.snip.Access;
+import org.snipsnap.snip.Comments;
+import org.snipsnap.snip.Modified;
+import org.snipsnap.snip.SnipPath;
+import org.snipsnap.snip.Links;
import org.snipsnap.snip.attachment.Attachments;
-import snipsnap.api.label.Labels;
-import org.snipsnap.snip.*;
import org.snipsnap.user.Permissions;
+import snipsnap.api.label.Labels;
import snipsnap.api.user.User;
-import org.snipsnap.render.macro.list.Linkable;
-import org.snipsnap.render.macro.list.Nameable;
import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
import java.sql.Timestamp;
import java.util.List;
-import java.io.IOException;
/**
* Interface for snips
*
- * @author Stephan J. Schmidt
+ * @author Stephan J. Schmidt
* @version $Id: Snip.java 1706 2004-07-08 08:53:20Z stephan $
*/
blob - 0c38e8d60d0cc341b216e4ef68ca47c9a3a64100
blob + 5612f1216cf4960043bd4873f936a4b4fda948e3
--- src/snipsnap/api/snip/SnipSpaceFactory.java
+++ src/snipsnap/api/snip/SnipSpaceFactory.java
package snipsnap.api.snip;
import snipsnap.api.container.Components;
-import snipsnap.api.snip.*;
-import snipsnap.api.snip.SnipSpace;
/**
*/
public class SnipSpaceFactory {
- public static synchronized snipsnap.api.snip.SnipSpace getInstance() {
- return (SnipSpace) snipsnap.api.container.Components.getComponent(SnipSpace.class);
+ public static synchronized SnipSpace getInstance() {
+ return (SnipSpace) Components.getComponent(SnipSpace.class);
}
public static synchronized void removeInstance() {