## Levels
log4j.logger.org.argeo=DEBUG
-log4j.logger.org.springframework.security=DEBUG
+log4j.logger.org.springframework.security=INFO
log4j.logger.org.apache.catalina=INFO
log4j.logger.org.apache.coyote=INFO
</configIni>
<launcherArgs>
- <vmArgs>-Dlog4j.configuration=file:${system_property:user.home}/dev/src/commons/eclipse/plugins/org.argeo.jcr.ui.explorer/log4j.properties</vmArgs>
+ <programArgs>-console</programArgs>
+ <vmArgs>-Dlog4j.configuration=file:${system_property:user.home}/dev/src/commons/eclipse/plugins/org.argeo.jcr.ui.explorer/log4j.properties -Dorg.argeo.security.ui.initialPerspective=org.argeo.jcr.ui.explorer.perspective</vmArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
</launcherArgs>
<plugin id="org.argeo.server.core"/>
<plugin id="org.argeo.server.jackrabbit"/>
<plugin id="org.argeo.server.jcr"/>
+ <plugin id="org.argeo.server.jcr.mvc"/>
<plugin id="org.argeo.server.json"/>
<plugin id="org.argeo.server.tika.jackrabbit" fragment="true"/>
<plugin id="org.argeo.server.tomcat" fragment="true"/>
<version>${version.argeo-commons}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.argeo.commons.server</groupId>
+ <artifactId>org.argeo.server.jcr.mvc</artifactId>
+ <version>${version.argeo-commons}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.argeo.commons.server</groupId>
<artifactId>org.argeo.server.dep.jackrabbit.server</artifactId>
javax.servlet.resources,
org.argeo.jackrabbit.remote,
org.argeo.jcr,
+ org.argeo.jcr.mvc,
+ org.argeo.server.json,
+ org.argeo.server.mvc,
org.springframework.osgi.web.context.support;version="1.2.1",
org.springframework.security;version="2.0.6.RELEASE",
org.springframework.security.ui.webapp;version="2.0.6.RELEASE",
org.springframework.web.context;version="2.5.6.SEC01",
org.springframework.web.filter;version="2.5.6.SEC01",
- org.springframework.web.servlet.handler;version="2.5.6.SEC01"
+ org.springframework.web.servlet;version="2.5.6.SEC01",
+ org.springframework.web.servlet.handler;version="2.5.6.SEC01",
+ org.springframework.web.servlet.view;version="2.5.6.SEC01"
<bean id="repositoryRegister" class="org.argeo.jcr.DefaultRepositoryRegister" />
+ <bean id="osivInterceptor"
+ class="org.argeo.jcr.mvc.OpenSessionInViewJcrInterceptor">
+<!-- <property name="session" ref="jcrSession" />-->
+ </bean>
+
</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+
+ <context:component-scan base-package="org.argeo.jcr.mvc" />
+
+ <bean name="**" class="org.argeo.jcr.mvc.JcrManagerController">
+ </bean>
+
+ <bean id="viewResolver" class="org.argeo.server.mvc.SerializingViewResolver">
+ <property name="serializer" ref="serverMapper" />
+ </bean>
+
+ <bean id="serverMapper" class="org.argeo.server.json.JsonServerMapper">
+ </bean>
+
+ <bean class="org.argeo.server.mvc.DefaultHandlerExceptionResolver" />
+
+ <bean id="handlerMapping"
+ class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+ <property name="interceptors">
+ <list>
+ <ref bean="osivInterceptor" />
+ </list>
+ </property>
+ </bean>
+
+</beans>
\ No newline at end of file
class="org.springframework.web.servlet.handler.SimpleServletHandlerAdapter" />
<bean id="urlMapping"
- class="org.argeo.server.jackrabbit.webdav.MultipleRepositoryHandlerMapping">
+ class="org.argeo.jackrabbit.remote.JcrRemotingHandlerMapping">
<property name="repositoryRegister" ref="repositoryRegister" />
</bean>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
+ <!-- XML rmeoting -->
+ <servlet>
+ <servlet-name>xmlremoting</servlet-name>
+ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+ <init-param>
+ <param-name>contextClass</param-name>
+ <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>xmlremoting</servlet-name>
+ <url-pattern>*.jcr</url-pattern>
+ </servlet-mapping>
+
+ <!-- WEBDAV servlet -->
+ <servlet>
+ <servlet-name>webdav</servlet-name>
+ <servlet-class>org.argeo.jackrabbit.remote.ExtendedDispatcherServlet</servlet-class>
+ <init-param>
+ <param-name>contextClass</param-name>
+ <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+ </init-param>
+ <init-param>
+ <param-name>dispatchOptionsRequest</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>webdav</servlet-name>
+ <url-pattern>/default/*</url-pattern>
+ </servlet-mapping>
+
+ <!-- JCR-MANAGER servlet -->
+ <servlet>
+ <servlet-name>jcr-manager</servlet-name>
+ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+ <init-param>
+ <param-name>contextClass</param-name>
+ <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>jcr-manager</servlet-name>
+ <url-pattern>/jcr-manager/*</url-pattern>
+ </servlet-mapping>
+
+
<!-- Security -->
-<!-- <filter>-->
-<!-- <filter-name>springSecurityFilterChain</filter-name>-->
-<!-- <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>-->
-<!-- </filter>-->
-<!---->
-<!-- <filter-mapping>-->
-<!-- <filter-name>springSecurityFilterChain</filter-name>-->
-<!-- <url-pattern>/*</url-pattern>-->
-<!-- </filter-mapping>-->
+ <filter>
+ <filter-name>springSecurityFilterChain</filter-name>
+ <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>springSecurityFilterChain</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
</web-app>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+ -->
+<!--
+<!DOCTYPE config [
+ <!ELEMENT config (iomanager , propertymanager, (collection | noncollection)? , filter?, mimetypeproperties?) >
+
+ <!ELEMENT iomanager (class, iohandler*) >
+ <!ELEMENT iohandler (class) >
+
+ <!ELEMENT propertymanager (class, propertyhandler*) >
+ <!ELEMENT propertyhandler (class) >
+
+ <!ELEMENT collection (nodetypes) >
+ <!ELEMENT noncollection (nodetypes) >
+
+ <!ELEMENT filter (class, namespaces?, nodetypes?) >
+
+ <!ELEMENT class >
+ <!ATTLIST class
+ name CDATA #REQUIRED
+ >
+ <!ELEMENT namespaces (prefix | uri)* >
+ <!ELEMENT prefix (CDATA) >
+ <!ELEMENT uri (CDATA) >
+
+ <!ELEMENT nodetypes (nodetype)* >
+ <!ELEMENT nodetype (CDATA) >
+
+ <!ELEMENT mimetypeproperties (mimemapping*, defaultmimetype) >
+
+ <!ELEMENT mimemapping >
+ <!ATTLIST mimemapping
+ extension CDATA #REQUIRED
+ mimetype CDATA #REQUIRED
+ >
+
+ <!ELEMENT defaultmimetype (CDATA) >
+]>
+-->
+
+<config>
+ <!--
+ Defines the IOManager implementation that is responsible for passing
+ import/export request to the individual IO-handlers.
+ -->
+ <iomanager>
+ <!-- class element defines the manager to be used. The specified class
+ must implement the IOManager interface.
+ Note, that the handlers are being added and called in the order
+ they appear in the configuration.
+ -->
+ <class name="org.apache.jackrabbit.server.io.IOManagerImpl" />
+ <iohandler>
+ <class name="org.apache.jackrabbit.server.io.VersionHandler" />
+ </iohandler>
+ <iohandler>
+ <class name="org.apache.jackrabbit.server.io.VersionHistoryHandler" />
+ </iohandler>
+ <iohandler>
+ <class name="org.apache.jackrabbit.server.io.ZipHandler" />
+ </iohandler>
+ <iohandler>
+ <class name="org.apache.jackrabbit.server.io.XmlHandler" />
+ </iohandler>
+ <iohandler>
+ <class name="org.apache.jackrabbit.server.io.DirListingExportHandler" />
+ </iohandler>
+ <iohandler>
+ <class name="org.apache.jackrabbit.server.io.DefaultHandler" />
+ </iohandler>
+ </iomanager>
+ <!--
+ Example config for iomanager that populates its list of handlers with
+ default values. Therefore the 'iohandler' elements are omited.
+ -->
+ <!--
+ <iomanager>
+ <class name="org.apache.jackrabbit.server.io.DefaultIOManager" />
+ </iomanager>
+ -->
+ <!--
+ Defines the PropertyManager implementation that is responsible for export
+ and import of resource properties.
+ -->
+ <propertymanager>
+ <!-- class element defines the manager to be used. The specified class
+ must implement the PropertyManager interface.
+ Note, that the handlers are being added and called in the order
+ they appear in the configuration.
+ -->
+ <class name="org.apache.jackrabbit.server.io.PropertyManagerImpl" />
+ <propertyhandler>
+ <class name="org.apache.jackrabbit.server.io.VersionHandler" />
+ </propertyhandler>
+ <propertyhandler>
+ <class name="org.apache.jackrabbit.server.io.VersionHistoryHandler" />
+ </propertyhandler>
+ <propertyhandler>
+ <class name="org.apache.jackrabbit.server.io.ZipHandler" />
+ </propertyhandler>
+ <propertyhandler>
+ <class name="org.apache.jackrabbit.server.io.XmlHandler" />
+ </propertyhandler>
+ <propertyhandler>
+ <class name="org.apache.jackrabbit.server.io.DefaultHandler" />
+ </propertyhandler>
+ </propertymanager>
+ <!--
+ Define nodetypes, that should never by displayed as 'collection'
+ -->
+ <noncollection>
+ <nodetypes>
+ <nodetype>nt:file</nodetype>
+ <nodetype>nt:resource</nodetype>
+ </nodetypes>
+ </noncollection>
+ <!--
+ Example: Defines nodetypes, that should always be displayed as 'collection'.
+ -->
+ <!--
+ <collection>
+ <nodetypes>
+ <nodetype>nt:folder</nodetype>
+ <nodetype>rep:root</nodetype>
+ </nodetypes>
+ </collection>
+ -->
+ <!--
+ Filter that allows to prevent certain items from being displayed.
+ Please note, that this has an effect on PROPFIND calls only and does not
+ provide limited access to those items matching any of the filters.
+
+ However specifying a filter may cause problems with PUT or MKCOL if the
+ resource to be created is being filtered out, thus resulting in inconsistent
+ responses (e.g. PUT followed by PROPFIND on parent).
+ -->
+ <filter>
+ <!-- class element defines the resource filter to be used. The specified class
+ must implement the ItemFilter interface -->
+ <class name="org.apache.jackrabbit.webdav.simple.DefaultItemFilter" />
+ <!--
+ Nodetype names to be used to filter child nodes.
+ A child node can be filtered if the declaring nodetype of its definition
+ is one of the nodetype names specified in the nodetypes Element.
+ E.g. defining 'rep:root' as filtered nodetype whould result in jcr:system
+ being hidden but no other child node of the root node, since those
+ are defined by the nodetype nt:unstructered.
+ -->
+ <!--
+ <nodetypes>
+ <nodetype>rep:root</nodetype>
+ </nodetypes>
+ -->
+ <!--
+ Namespace prefixes or uris. Items having a name that matches any of the
+ entries will be filtered.
+ -->
+ <namespaces>
+ <prefix>rep</prefix>
+ <prefix>jcr</prefix>
+ <!--
+ <uri>internal</uri>
+ <uri>http://www.jcp.org/jcr/1.0</uri>
+ -->
+ </namespaces>
+ </filter>
+
+ <!--
+ Optional 'mimetypeproperties' element.
+ It defines additional or replaces existing mappings for the MimeResolver
+ instance created by the ResourceConfig.
+ The default mappings are defined in org.apache.jackrabbit.server.io.mimetypes.properties.
+ If the default mime type defined by MimeResolver is 'application/octet-stream'.
+ -->
+ <!--
+ <mimetypeproperties>
+ <mimemapping extension="rtf" mimetype="application/rtf" />
+ <mimemapping extension="ott" mimetype="application/vnd.oasis.opendocument.text-template" />
+ <defaultmimetype>text/html</defaultmimetype>
+ </mimetypeproperties>
+ -->
+</config>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
+
+ <bean id="webdavServlet" class="org.argeo.jackrabbit.remote.WebDavServlet">
+<!-- <property name="repository" ref="jcrRepository" />-->
+ <property name="resourceConfiguration" value="osgibundle:/WEB-INF/webdav-config.xml" />
+ </bean>
+
+ <bean
+ class="org.springframework.web.servlet.handler.SimpleServletPostProcessor" />
+
+ <bean id="servletHandler"
+ class="org.springframework.web.servlet.handler.SimpleServletHandlerAdapter" />
+
+ <bean id="urlMapping"
+ class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
+ <property name="mappings">
+ <props>
+ <prop key="**">webdavServlet</prop>
+ </props>
+ </property>
+ </bean>
+
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+
+ <context:component-scan base-package="org.argeo.jcr.mvc" />
+
+ <bean name="/*.jcr" class="org.argeo.jcr.mvc.JcrBrowserController" />
+
+ <!-- Views -->
+ <bean name="getJcrItem" class="org.argeo.server.mvc.SerializingView">
+ <property name="serializer">
+ <bean class="org.argeo.jcr.mvc.JcrXmlServerSerializer" />
+ </property>
+ </bean>
+
+ <bean name="queryJcrNodes" class="org.argeo.server.mvc.SerializingView">
+ <property name="serializer" ref="jsonSerializer" />
+ </bean>
+
+ <bean name="queryJcrTable" class="org.argeo.server.mvc.SerializingView">
+ <property name="serializer" ref="jsonSerializer" />
+ </bean>
+
+ <bean name="500" class="org.argeo.server.mvc.SerializingView">
+ <property name="serializer" ref="jsonSerializer" />
+ </bean>
+
+ <!-- Serializers -->
+ <bean id="jsonSerializer" class="org.argeo.server.json.JsonServerSerializer" />
+
+ <!-- MVC -->
+ <bean id="handlerMapping"
+ class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+ <property name="interceptors">
+ <list>
+ <ref bean="osivInterceptor" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="viewResolver"
+ class="org.springframework.web.servlet.view.BeanNameViewResolver" />
+
+ <bean class="org.argeo.server.mvc.DefaultHandlerExceptionResolver" />
+
+</beans>
\ No newline at end of file