From: Mathieu Baudier Date: Sun, 21 Feb 2010 10:25:12 +0000 (+0000) Subject: Migrate to PDE projects for server runtime X-Git-Tag: argeo-commons-2.1.30~1660 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=ff2edf71a6223a88a10d2f6c51db2797bfb0c4b9;p=lgpl%2Fargeo-commons.git Migrate to PDE projects for server runtime git-svn-id: https://svn.argeo.org/commons/trunk@3371 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/server/runtime/org.argeo.server.ads/.classpath b/server/runtime/org.argeo.server.ads/.classpath index 16f01e2ee..fc460145a 100644 --- a/server/runtime/org.argeo.server.ads/.classpath +++ b/server/runtime/org.argeo.server.ads/.classpath @@ -2,6 +2,6 @@ - - + + diff --git a/server/runtime/org.argeo.server.ads/.project b/server/runtime/org.argeo.server.ads/.project index 831bb1b8d..448ef0483 100644 --- a/server/runtime/org.argeo.server.ads/.project +++ b/server/runtime/org.argeo.server.ads/.project @@ -11,13 +11,18 @@ - org.maven.ide.eclipse.maven2Builder + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder - org.maven.ide.eclipse.maven2Nature org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature diff --git a/server/runtime/org.argeo.server.ads/.settings/org.eclipse.jdt.core.prefs b/server/runtime/org.argeo.server.ads/.settings/org.eclipse.jdt.core.prefs index 96aed002c..34d3d6088 100644 --- a/server/runtime/org.argeo.server.ads/.settings/org.eclipse.jdt.core.prefs +++ b/server/runtime/org.argeo.server.ads/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,67 @@ -#Mon Nov 23 13:34:23 CET 2009 +#Sun Feb 21 11:17:20 CET 2010 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.5 diff --git a/server/runtime/org.argeo.server.ads/build.properties b/server/runtime/org.argeo.server.ads/build.properties new file mode 100644 index 000000000..e1885d3b8 --- /dev/null +++ b/server/runtime/org.argeo.server.ads/build.properties @@ -0,0 +1,2 @@ +additional.bundles = com.springsource.org.apache.directory.server.core +source.. = src/main/java/ diff --git a/server/runtime/org.argeo.server.ads/src/main/java/org/argeo/server/ads/AdsContainer.java b/server/runtime/org.argeo.server.ads/src/main/java/org/argeo/server/ads/AdsContainer.java index eab158618..95b0382b8 100644 --- a/server/runtime/org.argeo.server.ads/src/main/java/org/argeo/server/ads/AdsContainer.java +++ b/server/runtime/org.argeo.server.ads/src/main/java/org/argeo/server/ads/AdsContainer.java @@ -25,6 +25,7 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.core.io.Resource; import org.springframework.util.Assert; +@SuppressWarnings("restriction") public class AdsContainer implements InitializingBean, DisposableBean { private final static Log log = LogFactory.getLog(AdsContainer.class); diff --git a/server/runtime/org.argeo.server.core/.classpath b/server/runtime/org.argeo.server.core/.classpath index 16f01e2ee..fc460145a 100644 --- a/server/runtime/org.argeo.server.core/.classpath +++ b/server/runtime/org.argeo.server.core/.classpath @@ -2,6 +2,6 @@ - - + + diff --git a/server/runtime/org.argeo.server.core/.project b/server/runtime/org.argeo.server.core/.project index 18565208d..b28214ba7 100644 --- a/server/runtime/org.argeo.server.core/.project +++ b/server/runtime/org.argeo.server.core/.project @@ -11,13 +11,18 @@ - org.maven.ide.eclipse.maven2Builder + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder - org.maven.ide.eclipse.maven2Nature org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature diff --git a/server/runtime/org.argeo.server.core/.settings/org.eclipse.jdt.core.prefs b/server/runtime/org.argeo.server.core/.settings/org.eclipse.jdt.core.prefs index 2a55b739f..12b76cc2c 100644 --- a/server/runtime/org.argeo.server.core/.settings/org.eclipse.jdt.core.prefs +++ b/server/runtime/org.argeo.server.core/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,74 @@ -#Wed Sep 16 10:02:19 CEST 2009 +#Sun Feb 21 11:14:36 CET 2010 eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.5 diff --git a/server/runtime/org.argeo.server.core/build.properties b/server/runtime/org.argeo.server.core/build.properties new file mode 100644 index 000000000..83ef31118 --- /dev/null +++ b/server/runtime/org.argeo.server.core/build.properties @@ -0,0 +1,4 @@ +additional.bundles = org.springframework.web,\ + org.springframework.web.servlet,\ + org.springframework.xml +source.. = src/main/java/ diff --git a/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/MarshallerServerSerializer.java b/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/MarshallerServerSerializer.java index cc33aaa4f..64b048917 100644 --- a/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/MarshallerServerSerializer.java +++ b/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/MarshallerServerSerializer.java @@ -14,6 +14,7 @@ public class MarshallerServerSerializer implements ServerSerializer, Serializer private Marshaller marshaller; private String contentTypeCharset = "UTF-8"; + @SuppressWarnings("restriction") public void serialize(Object obj, HttpServletRequest request, HttpServletResponse response) { response.setContentType("text/xml;charset=" + contentTypeCharset); diff --git a/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/mvc/SerializingView.java b/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/mvc/SerializingView.java index bb411c49d..05befd68d 100644 --- a/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/mvc/SerializingView.java +++ b/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/mvc/SerializingView.java @@ -25,7 +25,7 @@ public class SerializingView extends AbstractView implements MvcConstants { this.serializer = serializer; } - @SuppressWarnings("unchecked") + @SuppressWarnings({ "unchecked", "restriction" }) @Override protected void renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response) diff --git a/server/runtime/org.argeo.server.hibernate/.classpath b/server/runtime/org.argeo.server.hibernate/.classpath index 16f01e2ee..fc460145a 100644 --- a/server/runtime/org.argeo.server.hibernate/.classpath +++ b/server/runtime/org.argeo.server.hibernate/.classpath @@ -2,6 +2,6 @@ - - + + diff --git a/server/runtime/org.argeo.server.hibernate/.project b/server/runtime/org.argeo.server.hibernate/.project index 59718cb0d..8252672d5 100644 --- a/server/runtime/org.argeo.server.hibernate/.project +++ b/server/runtime/org.argeo.server.hibernate/.project @@ -11,13 +11,18 @@ - org.maven.ide.eclipse.maven2Builder + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder - org.maven.ide.eclipse.maven2Nature org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature diff --git a/server/runtime/org.argeo.server.hibernate/build.properties b/server/runtime/org.argeo.server.hibernate/build.properties new file mode 100644 index 000000000..68ef43c38 --- /dev/null +++ b/server/runtime/org.argeo.server.hibernate/build.properties @@ -0,0 +1,2 @@ +additional.bundles = org.springframework.core +source.. = src/main/java/ diff --git a/server/runtime/org.argeo.server.jackrabbit/.classpath b/server/runtime/org.argeo.server.jackrabbit/.classpath index d3bdab048..f53d405d8 100644 --- a/server/runtime/org.argeo.server.jackrabbit/.classpath +++ b/server/runtime/org.argeo.server.jackrabbit/.classpath @@ -1,9 +1,9 @@ - - + + - - + + diff --git a/server/runtime/org.argeo.server.jackrabbit/.project b/server/runtime/org.argeo.server.jackrabbit/.project index a9b82a526..a381d35e0 100644 --- a/server/runtime/org.argeo.server.jackrabbit/.project +++ b/server/runtime/org.argeo.server.jackrabbit/.project @@ -11,13 +11,18 @@ - org.maven.ide.eclipse.maven2Builder + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder - org.maven.ide.eclipse.maven2Nature org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature diff --git a/server/runtime/org.argeo.server.jackrabbit/.settings/org.eclipse.jdt.core.prefs b/server/runtime/org.argeo.server.jackrabbit/.settings/org.eclipse.jdt.core.prefs index 736c47e06..956d9b7a7 100644 --- a/server/runtime/org.argeo.server.jackrabbit/.settings/org.eclipse.jdt.core.prefs +++ b/server/runtime/org.argeo.server.jackrabbit/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,67 @@ -#Tue Nov 24 18:41:10 CET 2009 +#Sun Feb 21 11:15:10 CET 2010 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.5 diff --git a/server/runtime/org.argeo.server.jackrabbit/build.properties b/server/runtime/org.argeo.server.jackrabbit/build.properties new file mode 100644 index 000000000..d5d2601d0 --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/build.properties @@ -0,0 +1,4 @@ +additional.bundles = com.springsource.junit +source.. = src/main/java/,\ + src/test/java/,\ + src/test/resources/ diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java new file mode 100644 index 000000000..4f12fa75a --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java @@ -0,0 +1,306 @@ +/* + * 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. + */ +package org.argeo.jcr; + +/** + * Copied from org.apache.jackrabbit.JcrConstants v1.6.0 in order to avoid a + * dependency to Jackrabbit. + */ +public interface ArgeoJcrConstants { + /** + * jcr:autoCreated + */ + public static final String JCR_AUTOCREATED = "jcr:autoCreated"; + /** + * jcr:baseVersion + */ + public static final String JCR_BASEVERSION = "jcr:baseVersion"; + /** + * jcr:child + */ + public static final String JCR_CHILD = "jcr:child"; + /** + * jcr:childNodeDefinition + */ + public static final String JCR_CHILDNODEDEFINITION = "jcr:childNodeDefinition"; + /** + * jcr:content + */ + public static final String JCR_CONTENT = "jcr:content"; + /** + * jcr:created + */ + public static final String JCR_CREATED = "jcr:created"; + /** + * jcr:data + */ + public static final String JCR_DATA = "jcr:data"; + /** + * jcr:defaultPrimaryType + */ + public static final String JCR_DEFAULTPRIMARYTYPE = "jcr:defaultPrimaryType"; + /** + * jcr:defaultValues + */ + public static final String JCR_DEFAULTVALUES = "jcr:defaultValues"; + /** + * jcr:encoding + */ + public static final String JCR_ENCODING = "jcr:encoding"; + /** + * jcr:frozenMixinTypes + */ + public static final String JCR_FROZENMIXINTYPES = "jcr:frozenMixinTypes"; + /** + * jcr:frozenNode + */ + public static final String JCR_FROZENNODE = "jcr:frozenNode"; + /** + * jcr:frozenPrimaryType + */ + public static final String JCR_FROZENPRIMARYTYPE = "jcr:frozenPrimaryType"; + /** + * jcr:frozenUuid + */ + public static final String JCR_FROZENUUID = "jcr:frozenUuid"; + /** + * jcr:hasOrderableChildNodes + */ + public static final String JCR_HASORDERABLECHILDNODES = "jcr:hasOrderableChildNodes"; + /** + * jcr:isCheckedOut + */ + public static final String JCR_ISCHECKEDOUT = "jcr:isCheckedOut"; + /** + * jcr:isMixin + */ + public static final String JCR_ISMIXIN = "jcr:isMixin"; + /** + * jcr:language + */ + public static final String JCR_LANGUAGE = "jcr:language"; + /** + * jcr:lastModified + */ + public static final String JCR_LASTMODIFIED = "jcr:lastModified"; + /** + * jcr:lockIsDeep + */ + public static final String JCR_LOCKISDEEP = "jcr:lockIsDeep"; + /** + * jcr:lockOwner + */ + public static final String JCR_LOCKOWNER = "jcr:lockOwner"; + /** + * jcr:mandatory + */ + public static final String JCR_MANDATORY = "jcr:mandatory"; + /** + * jcr:mergeFailed + */ + public static final String JCR_MERGEFAILED = "jcr:mergeFailed"; + /** + * jcr:mimeType + */ + public static final String JCR_MIMETYPE = "jcr:mimeType"; + /** + * jcr:mixinTypes + */ + public static final String JCR_MIXINTYPES = "jcr:mixinTypes"; + /** + * jcr:multiple + */ + public static final String JCR_MULTIPLE = "jcr:multiple"; + /** + * jcr:name + */ + public static final String JCR_NAME = "jcr:name"; + /** + * jcr:nodeTypeName + */ + public static final String JCR_NODETYPENAME = "jcr:nodeTypeName"; + /** + * jcr:onParentVersion + */ + public static final String JCR_ONPARENTVERSION = "jcr:onParentVersion"; + /** + * jcr:predecessors + */ + public static final String JCR_PREDECESSORS = "jcr:predecessors"; + /** + * jcr:primaryItemName + */ + public static final String JCR_PRIMARYITEMNAME = "jcr:primaryItemName"; + /** + * jcr:primaryType + */ + public static final String JCR_PRIMARYTYPE = "jcr:primaryType"; + /** + * jcr:propertyDefinition + */ + public static final String JCR_PROPERTYDEFINITION = "jcr:propertyDefinition"; + /** + * jcr:protected + */ + public static final String JCR_PROTECTED = "jcr:protected"; + /** + * jcr:requiredPrimaryTypes + */ + public static final String JCR_REQUIREDPRIMARYTYPES = "jcr:requiredPrimaryTypes"; + /** + * jcr:requiredType + */ + public static final String JCR_REQUIREDTYPE = "jcr:requiredType"; + /** + * jcr:rootVersion + */ + public static final String JCR_ROOTVERSION = "jcr:rootVersion"; + /** + * jcr:sameNameSiblings + */ + public static final String JCR_SAMENAMESIBLINGS = "jcr:sameNameSiblings"; + /** + * jcr:statement + */ + public static final String JCR_STATEMENT = "jcr:statement"; + /** + * jcr:successors + */ + public static final String JCR_SUCCESSORS = "jcr:successors"; + /** + * jcr:supertypes + */ + public static final String JCR_SUPERTYPES = "jcr:supertypes"; + /** + * jcr:system + */ + public static final String JCR_SYSTEM = "jcr:system"; + /** + * jcr:uuid + */ + public static final String JCR_UUID = "jcr:uuid"; + /** + * jcr:valueConstraints + */ + public static final String JCR_VALUECONSTRAINTS = "jcr:valueConstraints"; + /** + * jcr:versionHistory + */ + public static final String JCR_VERSIONHISTORY = "jcr:versionHistory"; + /** + * jcr:versionLabels + */ + public static final String JCR_VERSIONLABELS = "jcr:versionLabels"; + /** + * jcr:versionStorage + */ + public static final String JCR_VERSIONSTORAGE = "jcr:versionStorage"; + /** + * jcr:versionableUuid + */ + public static final String JCR_VERSIONABLEUUID = "jcr:versionableUuid"; + + /** + * Pseudo property jcr:path used with query results + */ + public static final String JCR_PATH = "jcr:path"; + /** + * Pseudo property jcr:score used with query results + */ + public static final String JCR_SCORE = "jcr:score"; + + /** + * mix:lockable + */ + public static final String MIX_LOCKABLE = "mix:lockable"; + /** + * mix:referenceable + */ + public static final String MIX_REFERENCEABLE = "mix:referenceable"; + /** + * mix:versionable + */ + public static final String MIX_VERSIONABLE = "mix:versionable"; + /** + * mix:shareable + */ + public static final String MIX_SHAREABLE = "mix:shareable"; + /** + * nt:base + */ + public static final String NT_BASE = "nt:base"; + /** + * nt:childNodeDefinition + */ + public static final String NT_CHILDNODEDEFINITION = "nt:childNodeDefinition"; + /** + * nt:file + */ + public static final String NT_FILE = "nt:file"; + /** + * nt:folder + */ + public static final String NT_FOLDER = "nt:folder"; + /** + * nt:frozenNode + */ + public static final String NT_FROZENNODE = "nt:frozenNode"; + /** + * nt:hierarchyNode + */ + public static final String NT_HIERARCHYNODE = "nt:hierarchyNode"; + /** + * nt:linkedFile + */ + public static final String NT_LINKEDFILE = "nt:linkedFile"; + /** + * nt:nodeType + */ + public static final String NT_NODETYPE = "nt:nodeType"; + /** + * nt:propertyDefinition + */ + public static final String NT_PROPERTYDEFINITION = "nt:propertyDefinition"; + /** + * nt:query + */ + public static final String NT_QUERY = "nt:query"; + /** + * nt:resource + */ + public static final String NT_RESOURCE = "nt:resource"; + /** + * nt:unstructured + */ + public static final String NT_UNSTRUCTURED = "nt:unstructured"; + /** + * nt:version + */ + public static final String NT_VERSION = "nt:version"; + /** + * nt:versionHistory + */ + public static final String NT_VERSIONHISTORY = "nt:versionHistory"; + /** + * nt:versionLabels + */ + public static final String NT_VERSIONLABELS = "nt:versionLabels"; + /** + * nt:versionedChild + */ + public static final String NT_VERSIONEDCHILD = "nt:versionedChild"; +} diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jcr/BeanNodeMapper.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jcr/BeanNodeMapper.java new file mode 100644 index 000000000..931b11f5c --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jcr/BeanNodeMapper.java @@ -0,0 +1,232 @@ +package org.argeo.jcr; + +import java.beans.PropertyDescriptor; +import java.beans.PropertyEditor; +import java.io.InputStream; +import java.util.Calendar; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +import javax.jcr.Item; +import javax.jcr.ItemNotFoundException; +import javax.jcr.Node; +import javax.jcr.RepositoryException; +import javax.jcr.Session; +import javax.jcr.Value; +import javax.jcr.ValueFactory; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.argeo.ArgeoException; +import org.springframework.beans.BeanWrapper; +import org.springframework.beans.BeanWrapperImpl; + +public class BeanNodeMapper { + private final static Log log = LogFactory.getLog(BeanNodeMapper.class); + + private Boolean versioning = false; + private String uuidProperty = "uuid"; + private String classProperty = "class"; + private Boolean strictUuidReference = false; + private String primaryNodeType = null; + + public String storagePath(Object obj) { + String clss = obj.getClass().getName(); + StringBuffer buf = new StringBuffer("/objects/"); + StringTokenizer st = new StringTokenizer(clss, "."); + while (st.hasMoreTokens()) { + buf.append(st.nextToken()).append('/'); + } + buf.append(obj.toString()); + return buf.toString(); + } + + public Node saveOrUpdate(Session session, Object obj) { + return saveOrUpdate(session, storagePath(obj), obj); + } + + public Node saveOrUpdate(Session session, String path, Object obj) { + try { + BeanWrapper beanWrapper = new BeanWrapperImpl(obj); + final Node node; + if (session.itemExists(path)) { + Item item = session.getItem(path); + if (!item.isNode()) + throw new ArgeoException("An item exist under " + path + + " but it is not a node: " + item); + node = (Node) item; + } else { + String parentPath = JcrUtils.parentPath(path); + Node parentNode; + if (session.itemExists(path)) + parentNode = (Node) session.getItem(parentPath); + else + parentNode = JcrUtils.mkdirs(session, parentPath, null, + versioning); + // create node + if (primaryNodeType != null) + node = parentNode.addNode(JcrUtils.lastPathElement(path), + primaryNodeType); + else + node = parentNode.addNode(JcrUtils.lastPathElement(path)); + } + + beanToNode(session, beanWrapper, node); + return node; + } catch (ArgeoException e) { + throw e; + } catch (Exception e) { + throw new ArgeoException("Cannot save or update " + obj + " under " + + path, e); + } + } + + protected void beanToNode(Session session, BeanWrapper beanWrapper, + Node node) throws RepositoryException { + if (log.isDebugEnabled()) + log.debug("Map bean to node " + node.getPath()); + + properties: for (PropertyDescriptor pd : beanWrapper + .getPropertyDescriptors()) { + String name = pd.getName(); + + Object value = beanWrapper.getPropertyValue(name); + if (value == null) + continue properties;// skip + + // if (uuidProperty != null && uuidProperty.equals(name)) { + // // node.addMixin(ArgeoJcrConstants.MIX_REFERENCEABLE); + // node.setProperty(ArgeoJcrConstants.JCR_UUID, value.toString()); + // continue properties; + // } + + if ("class".equals(name)) { + if (classProperty != null) { + node.setProperty(classProperty, ((Class) value) + .getName()); + // TODO: store a class hierarchy? + } + continue properties; + } + + Value val = asValue(session, value); + if (val != null) { + node.setProperty(name, val); + continue properties; + } + + if (value instanceof List) { + List lst = (List) value; + Value[] values = new Value[lst.size()]; + boolean atLeastOneSet = false; + for (int i = 0; i < lst.size(); i++) { + Object lstValue = lst.get(i); + values[i] = asValue(session, lstValue); + if (values[i] != null) { + atLeastOneSet = true; + } else { + Node childNode = findChildReference(session, + new BeanWrapperImpl(lstValue)); + if (childNode != null) { + values[i] = session.getValueFactory().createValue( + childNode); + atLeastOneSet = true; + } + } + } + + if (!atLeastOneSet && lst.size() != 0) + throw new ArgeoException( + "This type of list is not supported " + + lst.getClass()); + + node.setProperty(name, values); + continue properties; + } + + if (value instanceof Map) { + Map map = (Map) value; + // TODO: add map specific type + Node mapNode = node.addNode(name); + for (Object key : map.keySet()) { + Object mapValue = map.get(key); + PropertyEditor pe = beanWrapper.findCustomEditor(key + .getClass(), null); + String keyStr = pe.getAsText(); + // TODO: check string format + Node entryNode = mapNode.addNode(keyStr); + beanToNode(session, new BeanWrapperImpl(mapValue), + entryNode); + } + + continue properties; + } + + BeanWrapper child = new BeanWrapperImpl(value); + // TODO: delegate to another mapper + + Node childNode = findChildReference(session, child); + if (childNode != null) { + node.setProperty(name, childNode); + continue properties; + } + + // default case (recursive) + childNode = node.addNode(name); + beanToNode(session, child, childNode); + // if (childNode.isNodeType(ArgeoJcrConstants.MIX_REFERENCEABLE)) { + // log.debug("Add reference to " + childNode.getPath()); + // node.setProperty(name, childNode); + // } + } + } + + /** Returns null if value cannot be found */ + protected Value asValue(Session session, Object value) + throws RepositoryException { + ValueFactory valueFactory = session.getValueFactory(); + if (value instanceof Integer) + return valueFactory.createValue((Integer) value); + else if (value instanceof Long) + return valueFactory.createValue((Long) value); + else if (value instanceof Float) + return valueFactory.createValue((Float) value); + else if (value instanceof Double) + return valueFactory.createValue((Double) value); + else if (value instanceof Boolean) + return valueFactory.createValue((Boolean) value); + else if (value instanceof Calendar) + return valueFactory.createValue((Calendar) value); + else if (value instanceof CharSequence) + return valueFactory.createValue(value.toString()); + else if (value instanceof InputStream) + return valueFactory.createValue((InputStream) value); + else + return null; + } + + protected Node findChildReference(Session session, BeanWrapper child) + throws RepositoryException { + if (child.isReadableProperty(uuidProperty)) { + String childUuid = child.getPropertyValue(uuidProperty).toString(); + try { + return session.getNodeByUUID(childUuid); + } catch (ItemNotFoundException e) { + if (strictUuidReference) + throw new ArgeoException("No node found with uuid " + + childUuid, e); + } + } + return null; + } + + protected String propertyName(String name) { + return name; + } + + public void setVersioning(Boolean versioning) { + this.versioning = versioning; + } + +} diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jcr/JcrUtils.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jcr/JcrUtils.java new file mode 100644 index 000000000..5a46a7637 --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jcr/JcrUtils.java @@ -0,0 +1,108 @@ +package org.argeo.jcr; + +import java.util.StringTokenizer; + +import javax.jcr.Node; +import javax.jcr.NodeIterator; +import javax.jcr.Property; +import javax.jcr.PropertyIterator; +import javax.jcr.RepositoryException; +import javax.jcr.Session; +import javax.jcr.Value; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.argeo.ArgeoException; + +public class JcrUtils { + private final static Log log = LogFactory.getLog(JcrUtils.class); + + public static String parentPath(String path) { + if (path.equals("/")) + throw new ArgeoException("Root path '/' has no parent path"); + if (path.charAt(0) != '/') + throw new ArgeoException("Path " + path + " must start with a '/'"); + String pathT = path; + if (pathT.charAt(pathT.length() - 1) == '/') + pathT = pathT.substring(0, pathT.length() - 2); + + int index = pathT.lastIndexOf('/'); + return pathT.substring(0, index); + } + + public static String lastPathElement(String path) { + if (path.charAt(path.length() - 1) == '/') + throw new ArgeoException("Path " + path + " cannot end with '/'"); + int index = path.lastIndexOf('/'); + if (index <= 0) + throw new ArgeoException("Cannot find last path element for " + + path); + return path.substring(index + 1); + } + + public static Node mkdirs(Session session, String path, String type, + Boolean versioning) { + try { + if (path.equals('/')) + return session.getRootNode(); + + StringTokenizer st = new StringTokenizer(path, "/"); + StringBuffer current = new StringBuffer("/"); + Node currentNode = session.getRootNode(); + while (st.hasMoreTokens()) { + String part = st.nextToken(); + current.append(part).append('/'); + if (!session.itemExists(current.toString())) { + if (type != null) + currentNode = currentNode.addNode(part, type); + else + currentNode = currentNode.addNode(part); + if (versioning) + currentNode.addMixin(ArgeoJcrConstants.MIX_VERSIONABLE); + if (log.isTraceEnabled()) + log.debug("Added folder " + part + " as " + current); + } else { + currentNode = (Node) session.getItem(current.toString()); + } + } + session.save(); + return currentNode; + } catch (RepositoryException e) { + throw new ArgeoException("Cannot mkdirs " + path, e); + } + } + + /** Recursively outputs the contents of the given node. */ + public static void debug(Node node) throws RepositoryException { + // First output the node path + log.debug(node.getPath()); + // Skip the virtual (and large!) jcr:system subtree + if (node.getName().equals(ArgeoJcrConstants.JCR_SYSTEM)) { + return; + } + + // Then the children nodes (recursive) + NodeIterator it = node.getNodes(); + while (it.hasNext()) { + Node childNode = it.nextNode(); + debug(childNode); + } + + // Then output the properties + PropertyIterator properties = node.getProperties(); + while (properties.hasNext()) { + Property property = properties.nextProperty(); + if (property.getDefinition().isMultiple()) { + // A multi-valued property, print all values + Value[] values = property.getValues(); + for (int i = 0; i < values.length; i++) { + log.debug(property.getPath() + "=" + values[i].getString()); + } + } else { + // A single-valued property + log.debug(property.getPath() + "=" + property.getString()); + } + } + + } +} diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/JackrabbitContainer.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/JackrabbitContainer.java index 3132e7b29..a81451dc1 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/JackrabbitContainer.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/JackrabbitContainer.java @@ -17,6 +17,7 @@ import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.core.io.Resource; +@SuppressWarnings("restriction") public class JackrabbitContainer implements InitializingBean, DisposableBean, Repository { private Resource configuration; diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java index 965a5fd47..c7b42e6df 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/webdav/WebDavServlet.java @@ -53,6 +53,7 @@ public class WebDavServlet extends SimpleWebdavServlet { // } } + @SuppressWarnings("restriction") @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java index 44e6ecc15..020672b86 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java @@ -5,17 +5,14 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Calendar; import java.util.List; -import java.util.StringTokenizer; import javax.activation.MimetypesFileTypeMap; import javax.jcr.Node; import javax.jcr.Property; -import javax.jcr.PropertyIterator; import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.SimpleCredentials; -import javax.jcr.Value; import javax.jcr.version.Version; import javax.jcr.version.VersionHistory; import javax.jcr.version.VersionIterator; @@ -24,6 +21,7 @@ import org.apache.commons.io.FilenameUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.ArgeoException; +import org.argeo.jcr.JcrUtils; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.core.io.Resource; @@ -44,27 +42,7 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { // private String restoreBase = "/.restore"; public void mkdirs(String path) { - try { - StringTokenizer st = new StringTokenizer(path, "/"); - StringBuffer current = new StringBuffer("/"); - Node currentNode = session().getRootNode(); - while (st.hasMoreTokens()) { - String part = st.nextToken(); - current.append(part).append('/'); - if (!session().itemExists(current.toString())) { - currentNode = currentNode.addNode(part, "nt:folder"); - if (versioning) - currentNode.addMixin("mix:versionable"); - if (log.isTraceEnabled()) - log.debug("Added folder " + part + " as " + current); - } else { - currentNode = (Node) session().getItem(current.toString()); - } - } - session().save(); - } catch (RepositoryException e) { - throw new ArgeoException("Cannot mkdirs " + path, e); - } + JcrUtils.mkdirs(session(), path, "nt:folder", versioning); } public void create(String path, Resource file, String mimeType) { @@ -193,14 +171,6 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { try { Node fileNode = (Node) session().getItem(path); - - // if (revision == 0) { - // InputStream in = fromVersion(fileNode.getBaseVersion()); - // if (log.isDebugEnabled()) - // log.debug("Retrieved " + path + " at base revision "); - // return in; - // } - VersionHistory history = fileNode.getVersionHistory(); int count = 0; Version version = null; @@ -232,22 +202,6 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { return in; } - // protected InputStream restoreOrGetRevision(Node fileNode, Version - // version, - // Integer revision) throws RepositoryException { - // Node parentFolder = (Node) fileNode - // .getAncestor(fileNode.getDepth() - 1); - // String restoreFolderPath = restoreBase + parentFolder.getPath(); - // mkdirs(restoreFolderPath); - // String subNodeName = fileNode.getName() + "__" + fill(revision); - // Node restoreFolder = (Node) session().getItem(restoreFolderPath); - // if (!restoreFolder.hasNode(subNodeName)) { - // parentFolder.restore(version, subNodeName, true); - // } - // return parentFolder.getNode(subNodeName + "/jcr:content").getProperty( - // "jcr:data").getStream(); - // } - protected Session session() { return session; } @@ -281,34 +235,6 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { this.defaultEncoding = defaultEncoding; } - /** Recursively outputs the contents of the given node. */ - public static void debug(Node node) throws RepositoryException { - // First output the node path - log.debug(node.getPath()); - // Skip the virtual (and large!) jcr:system subtree - if (node.getName().equals("jcr:system")) { - return; - } - - // Then output the properties - PropertyIterator properties = node.getProperties(); - while (properties.hasNext()) { - Property property = properties.nextProperty(); - if (property.getDefinition().isMultiple()) { - // A multi-valued property, print all values - Value[] values = property.getValues(); - for (int i = 0; i < values.length; i++) { - log.debug(property.getPath() + " = " - + values[i].getString()); - } - } else { - // A single-valued property - log.debug(property.getPath() + " = " + property.getString()); - } - } - - } - protected String fill(Integer number) { int size = 4; String str = number.toString(); diff --git a/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/AbstractJcrTestCase.java b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/AbstractJcrTestCase.java new file mode 100644 index 000000000..feee17e78 --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/AbstractJcrTestCase.java @@ -0,0 +1,38 @@ +package org.argeo.jcr; + +import java.io.File; + +import javax.jcr.Repository; + +import junit.framework.TestCase; + +import org.apache.commons.io.FileUtils; +import org.apache.jackrabbit.core.TransientRepository; +import org.argeo.server.jcr.JcrResourceAdapterTest; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; + +public abstract class AbstractJcrTestCase extends TestCase { + private TransientRepository repository; + + @Override + protected void setUp() throws Exception { + File homeDir = new File(System.getProperty("java.io.tmpdir"), + JcrResourceAdapterTest.class.getSimpleName()); + FileUtils.deleteDirectory(homeDir); + repository = new TransientRepository(getRepositoryFile(), homeDir); + } + + @Override + protected void tearDown() throws Exception { + } + + protected File getRepositoryFile() throws Exception { + Resource res = new ClassPathResource("org/argeo/jcr/repository.xml"); + return res.getFile(); + } + + protected Repository getRepository() { + return repository; + } +} diff --git a/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/CollectionsObject.java b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/CollectionsObject.java new file mode 100644 index 000000000..5d00c7a10 --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/CollectionsObject.java @@ -0,0 +1,72 @@ +package org.argeo.jcr; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CollectionsObject { + private String id; + private String label; + private SimpleObject simpleObject; + private List stringList = new ArrayList(); + private Map floatMap = new HashMap(); + private Map objectMap = new HashMap(); + private Map> mapOfMaps = new HashMap>(); + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public SimpleObject getSimpleObject() { + return simpleObject; + } + + public void setSimpleObject(SimpleObject simpleObject) { + this.simpleObject = simpleObject; + } + + public List getStringList() { + return stringList; + } + + public void setStringList(List stringList) { + this.stringList = stringList; + } + + public Map getFloatMap() { + return floatMap; + } + + public void setFloatMap(Map floatMap) { + this.floatMap = floatMap; + } + + public Map getObjectMap() { + return objectMap; + } + + public void setObjectMap(Map objectMap) { + this.objectMap = objectMap; + } + + public Map> getMapOfMaps() { + return mapOfMaps; + } + + public void setMapOfMaps(Map> mapOfMaps) { + this.mapOfMaps = mapOfMaps; + } +} diff --git a/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/MapperTest.java b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/MapperTest.java new file mode 100644 index 000000000..4a14a277e --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/MapperTest.java @@ -0,0 +1,31 @@ +package org.argeo.jcr; + +import javax.jcr.Node; +import javax.jcr.Session; +import javax.jcr.SimpleCredentials; + +public class MapperTest extends AbstractJcrTestCase { + public void testSimpleObject() throws Exception { + SimpleObject mySo = new SimpleObject(); + mySo.setInteger(100); + mySo.setString("hello world"); + + OtherObject oo1 = new OtherObject(); + oo1.setKey("someKey"); + oo1.setValue("stringValue"); + mySo.setOtherObject(oo1); + + OtherObject oo2 = new OtherObject(); + oo2.setKey("anotherSimpleObject"); + oo2.setValue(new SimpleObject()); + mySo.setAnotherObject(oo2); + + Session session = getRepository().login( + new SimpleCredentials("demo", "demo".toCharArray())); + BeanNodeMapper bnm = new BeanNodeMapper(); + + Node node = bnm.saveOrUpdate(session, mySo); + session.save(); + JcrUtils.debug(node); + } +} diff --git a/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/OtherObject.java b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/OtherObject.java new file mode 100644 index 000000000..a9a49d70a --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/OtherObject.java @@ -0,0 +1,22 @@ +package org.argeo.jcr; + +public class OtherObject { + private String key; + private Object value; + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public Object getValue() { + return value; + } + + public void setValue(Object value) { + this.value = value; + } +} diff --git a/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/SimpleObject.java b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/SimpleObject.java new file mode 100644 index 000000000..29718807a --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/jcr/SimpleObject.java @@ -0,0 +1,62 @@ +package org.argeo.jcr; + +import java.util.UUID; + +public class SimpleObject { + private String string; + private String uuid = UUID.randomUUID().toString(); + private Integer integer; + private OtherObject otherObject; + private OtherObject anotherObject; + + public String getString() { + return string; + } + + public void setString(String sting) { + this.string = sting; + } + + public Integer getInteger() { + return integer; + } + + public void setInteger(Integer integer) { + this.integer = integer; + } + + public OtherObject getOtherObject() { + return otherObject; + } + + public void setOtherObject(OtherObject otherObject) { + this.otherObject = otherObject; + } + + public OtherObject getAnotherObject() { + return anotherObject; + } + + public void setAnotherObject(OtherObject anotherObject) { + this.anotherObject = anotherObject; + } + + @Override + public boolean equals(Object obj) { + return string.equals(((SimpleObject) obj).string); + } + + @Override + public int hashCode() { + return string.hashCode(); + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public String getUuid() { + return uuid; + } + +} diff --git a/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/server/jcr/JcrResourceAdapterTest.java b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/server/jcr/JcrResourceAdapterTest.java index 50f40c731..606b065b5 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/server/jcr/JcrResourceAdapterTest.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/test/java/org/argeo/server/jcr/JcrResourceAdapterTest.java @@ -1,22 +1,18 @@ package org.argeo.server.jcr; -import java.io.File; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.List; -import junit.framework.TestCase; - -import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.jackrabbit.core.TransientRepository; +import org.argeo.jcr.AbstractJcrTestCase; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; -public class JcrResourceAdapterTest extends TestCase { +public class JcrResourceAdapterTest extends AbstractJcrTestCase { private static SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMdd:hhmmss.SSS"); @@ -24,7 +20,6 @@ public class JcrResourceAdapterTest extends TestCase { .getLog(JcrResourceAdapterTest.class); private JcrResourceAdapter jra; - private TransientRepository repository; public void testCreate() throws Exception { String basePath = "/test/subdir"; @@ -76,15 +71,9 @@ public class JcrResourceAdapterTest extends TestCase { @Override protected void setUp() throws Exception { - File homeDir = new File(System.getProperty("java.io.tmpdir"), - JcrResourceAdapterTest.class.getSimpleName()); - FileUtils.deleteDirectory(homeDir); - Resource res = new ClassPathResource( - "org/argeo/server/jcr/repository.xml"); - repository = new TransientRepository(res.getFile(), homeDir); - + super.setUp(); jra = new JcrResourceAdapter(); - jra.setRepository(repository); + jra.setRepository(getRepository()); jra.setUsername("demo"); jra.setPassword("demo"); jra.afterPropertiesSet(); @@ -92,8 +81,8 @@ public class JcrResourceAdapterTest extends TestCase { @Override protected void tearDown() throws Exception { + super.tearDown(); jra.destroy(); - // repository.shutdown(); } } diff --git a/server/runtime/org.argeo.server.jackrabbit/src/test/resources/org/argeo/jcr/repository.xml b/server/runtime/org.argeo.server.jackrabbit/src/test/resources/org/argeo/jcr/repository.xml new file mode 100644 index 000000000..f05192337 --- /dev/null +++ b/server/runtime/org.argeo.server.jackrabbit/src/test/resources/org/argeo/jcr/repository.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/server/runtime/org.argeo.server.json/.classpath b/server/runtime/org.argeo.server.json/.classpath index 6254cacb8..412536dbd 100644 --- a/server/runtime/org.argeo.server.json/.classpath +++ b/server/runtime/org.argeo.server.json/.classpath @@ -1,8 +1,8 @@ - + - - + + diff --git a/server/runtime/org.argeo.server.json/.project b/server/runtime/org.argeo.server.json/.project index 8150301f3..e32fd4a26 100644 --- a/server/runtime/org.argeo.server.json/.project +++ b/server/runtime/org.argeo.server.json/.project @@ -11,13 +11,18 @@ - org.maven.ide.eclipse.maven2Builder + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder - org.maven.ide.eclipse.maven2Nature org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature diff --git a/server/runtime/org.argeo.server.json/.settings/org.eclipse.jdt.core.prefs b/server/runtime/org.argeo.server.json/.settings/org.eclipse.jdt.core.prefs index 57c9743bc..d5df3e8ef 100644 --- a/server/runtime/org.argeo.server.json/.settings/org.eclipse.jdt.core.prefs +++ b/server/runtime/org.argeo.server.json/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,67 @@ -#Wed Sep 16 09:48:59 CEST 2009 +#Sun Feb 21 11:16:01 CET 2010 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.5 diff --git a/server/runtime/org.argeo.server.json/build.properties b/server/runtime/org.argeo.server.json/build.properties new file mode 100644 index 000000000..65cb73bb9 --- /dev/null +++ b/server/runtime/org.argeo.server.json/build.properties @@ -0,0 +1,2 @@ +source.. = src/main/java/,\ + src/test/java/ diff --git a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java index c6691bc00..1fbed9f3a 100644 --- a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java +++ b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java @@ -43,6 +43,7 @@ public class JsonServerSerializer implements ServerSerializer, Serializer { objectMapper.setSerializerProvider(serializerProvider); } + @SuppressWarnings("restriction") public void serialize(Object obj, HttpServletRequest request, HttpServletResponse response) { if (asHtml) diff --git a/server/runtime/org.argeo.server.jxl/.classpath b/server/runtime/org.argeo.server.jxl/.classpath index 6b67f5112..f53d405d8 100644 --- a/server/runtime/org.argeo.server.jxl/.classpath +++ b/server/runtime/org.argeo.server.jxl/.classpath @@ -2,8 +2,8 @@ - + - - + + diff --git a/server/runtime/org.argeo.server.jxl/.project b/server/runtime/org.argeo.server.jxl/.project index 77aace3d8..10df72a11 100644 --- a/server/runtime/org.argeo.server.jxl/.project +++ b/server/runtime/org.argeo.server.jxl/.project @@ -11,13 +11,18 @@ - org.maven.ide.eclipse.maven2Builder + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder - org.maven.ide.eclipse.maven2Nature org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature diff --git a/server/runtime/org.argeo.server.jxl/.settings/org.eclipse.jdt.core.prefs b/server/runtime/org.argeo.server.jxl/.settings/org.eclipse.jdt.core.prefs index 737c94ce5..d991f4b6a 100644 --- a/server/runtime/org.argeo.server.jxl/.settings/org.eclipse.jdt.core.prefs +++ b/server/runtime/org.argeo.server.jxl/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,67 @@ -#Thu Oct 01 12:06:12 CEST 2009 +#Sun Feb 21 11:16:56 CET 2010 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.5 diff --git a/server/runtime/org.argeo.server.jxl/build.properties b/server/runtime/org.argeo.server.jxl/build.properties new file mode 100644 index 000000000..d5d2601d0 --- /dev/null +++ b/server/runtime/org.argeo.server.jxl/build.properties @@ -0,0 +1,4 @@ +additional.bundles = com.springsource.junit +source.. = src/main/java/,\ + src/test/java/,\ + src/test/resources/ diff --git a/server/runtime/org.argeo.server.jxl/src/test/java/org/argeo/server/jxl/dao/JxlDaoSupportTest.java b/server/runtime/org.argeo.server.jxl/src/test/java/org/argeo/server/jxl/dao/JxlDaoSupportTest.java index 404745991..7e55fcca8 100644 --- a/server/runtime/org.argeo.server.jxl/src/test/java/org/argeo/server/jxl/dao/JxlDaoSupportTest.java +++ b/server/runtime/org.argeo.server.jxl/src/test/java/org/argeo/server/jxl/dao/JxlDaoSupportTest.java @@ -6,6 +6,7 @@ import junit.framework.TestCase; import org.springframework.core.io.ClassPathResource; +@SuppressWarnings("restriction") public class JxlDaoSupportTest extends TestCase { public void testBasic() throws Exception { JxlDaoSupport jsd = new JxlDaoSupport(); diff --git a/server/runtime/org.argeo.server.osgi/.classpath b/server/runtime/org.argeo.server.osgi/.classpath index 16f01e2ee..fc460145a 100644 --- a/server/runtime/org.argeo.server.osgi/.classpath +++ b/server/runtime/org.argeo.server.osgi/.classpath @@ -2,6 +2,6 @@ - - + + diff --git a/server/runtime/org.argeo.server.osgi/.project b/server/runtime/org.argeo.server.osgi/.project index 870b018b1..0d0b9548d 100644 --- a/server/runtime/org.argeo.server.osgi/.project +++ b/server/runtime/org.argeo.server.osgi/.project @@ -11,13 +11,18 @@ - org.maven.ide.eclipse.maven2Builder + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder - org.maven.ide.eclipse.maven2Nature org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature diff --git a/server/runtime/org.argeo.server.osgi/build.properties b/server/runtime/org.argeo.server.osgi/build.properties new file mode 100644 index 000000000..8f824738f --- /dev/null +++ b/server/runtime/org.argeo.server.osgi/build.properties @@ -0,0 +1,5 @@ +additional.bundles = org.springframework.web.servlet,\ + org.springframework.web,\ + org.springframework.context,\ + org.springframework.beans +source.. = src/main/java/ diff --git a/server/runtime/pom.xml b/server/runtime/pom.xml index 0722af7cd..455ae5787 100644 --- a/server/runtime/pom.xml +++ b/server/runtime/pom.xml @@ -20,4 +20,73 @@ org.argeo.server.ads org.argeo.server.jackrabbit + + + + src/main/resources + + + . + + META-INF/** + + + + + + maven-clean-plugin + + + + META-INF + + MANIFEST.MF + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + META-INF/MANIFEST.MF + + + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-surefire-plugin + + + org.apache.felix + maven-bundle-plugin + ${version.maven-bundle-plugin} + true + + META-INF + + ${project.version}-r${buildNumber} + ${pom.artifactId} + J2SE-1.5 + <_removeheaders>Bnd-LastModified + + + + + bundle-manifest + process-classes + + manifest + + + + + + \ No newline at end of file