diff --git a/maven-alfresco-amp-archetype/.classpath b/maven-alfresco-amp-archetype/.classpath new file mode 100644 index 00000000..40fab7b3 --- /dev/null +++ b/maven-alfresco-amp-archetype/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/maven-alfresco-amp-archetype/.project b/maven-alfresco-amp-archetype/.project new file mode 100644 index 00000000..794f4a9d --- /dev/null +++ b/maven-alfresco-amp-archetype/.project @@ -0,0 +1,9 @@ + + demoamp + + + + + org.eclipse.jdt.core.javanature + + \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/pom.xml b/maven-alfresco-amp-archetype/pom.xml new file mode 100644 index 00000000..c369ecc8 --- /dev/null +++ b/maven-alfresco-amp-archetype/pom.xml @@ -0,0 +1,42 @@ + + + + 4.0.0 + com.sourcesense.alfresco + maven-alfresco-amp-archetype + maven-archetype + demoamp + 1.0 + + + + org.apache.maven.archetype + archetype-packaging + 2.0-alpha-3 + + + + + maven-archetype-plugin + 2.0-alpha-3 + true + + + + \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/maven-alfresco-amp-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml new file mode 100644 index 00000000..0862c527 --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -0,0 +1,70 @@ + + + + + src/main/java + + **/*.java + + + + src/main/webapp + + **/*.txt + **/*.jsp + + + + src/main/resources + + **/*.xml + **/*.properties + + + + src/main/webapp + + **/*.js + **/*.gif + **/*.css + + + + src/test/properties + + **/*.properties + + + + src/test/resources + + **/*.xml + **/*.properties + + + + + + module.properties + README.txt + TODO.txt + + + + \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/META-INF/maven/archetype.xml b/maven-alfresco-amp-archetype/src/main/resources/META-INF/maven/archetype.xml new file mode 100644 index 00000000..53c0ccfd --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/META-INF/maven/archetype.xml @@ -0,0 +1,44 @@ + + + + maven-alfresco-amp-archetype + + src/main/java/Demo.java + src/main/java/DemoComponent.java + + + src/main/resources/alfresco/module/org.alfresco.module.demoamp/context/service-context.xml + src/main/resources/alfresco/module/org.alfresco.module.demoamp/log4j.properties + src/main/resources/alfresco/module/org.alfresco.module.demoamp/module-context.xml + src/main/webapp/css/demoamp.css + src/main/webapp/images/sourcesense.gif + src/main/webapp/jsp/demoamp.jsp + src/main/webapp/licenses/README-licenses.txt + src/main/webapp/scripts/demoamp.js + module.properties + README.txt + TODO.txt + + + src/test/properties/local/application.properties + src/test/resources/alfresco/extension/custom-repository-context.xml + src/test/resources/alfresco/extension/file-servers-custom.xml + src/test/resources/log4j.properties + + \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/README.txt b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/README.txt new file mode 100644 index 00000000..94a7efb0 --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/README.txt @@ -0,0 +1,129 @@ +====================================================================== +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. +====================================================================== + + +--------------------------------------- +Archetype Release: Archetype - maven-amp-archetype +Author: g.columbro@sourcesense.com +http://forge.alfresco.com/m2alfresco + +Contacts: +- alfresco-dev@lists.sourcesense.com (developer) +- alfresco@sourcesense.com (commercial) + +See Also: +http://wiki.alfresco.com/wiki/Module_Management_Tool +----------------------------------------------------- + + + +M2 Instructions for Alfresco AMP: +-------------------------------- + +The project can be built using Maven2. + + +Alfresco maven2 AMP build +------------------------- + + +One command quickstart: +$ MAVEN_OPTS="-Xms256m -Xmx512m -XX:PermSize=128m" mvn clean integration-test -P webapp + +Runs the jetty embedded with overlayed the currently developed AMP + + +FEATURES: +--------- + +- AMP customized build : mvn clean package +- AMP dependencies management: 'mvn clean package' can take care of overlay deps +- Alfresco webapp integration via war creation mvn clean package -P webapp +- jetty embedded build for fast testing, mvn clean integration-test -P webapp +- install/deployment of Alfresco compatible AMPs on a m2 repo mvn install / deploy [ params ] + +- using the maven-amp-plugin (http://forge.alfresco.com/maven4alfresco) WAR can depend on AMP artifacts and have them overlayed within the maven +lifecycle, avoiding the boring MMT run. + +Specific dependencies and different Alfresco versions can be specified in 'webapp' profile dependecies. Alfresco test webapp is overlayed (apart with +all AMP and WAR dependencies specified) also with a sensible default 'alfresco/extension' folder to have a clean safe reproduceable and portable +default alfresco run. Find these test configuaration files in 'src/test/resources' and environment dependent properties in src/test/properties//application.properties + + +SOON TO COME: +------------ + +- Shared configuration (site + release + plugin config) with maven-alfresco-extension-archetype via super POM + + +PROJECT LAYOUT +-------------- + +src --------------------------------------------------------> (source folder) + | + |__ main ___ __ resources --------------------------> mapped in the classpath (alfresco module config goes here, as well as other classpath resources) + | | | NB: best practice groupId.artifactId=moduleId is used by the archetype and by the AMP unpacker + | | |__ ex: alfresco/module/com.sourcesense.${artifactId} ---> Example Alfresco module config + | | + | | + | |__ java -------------------------------> customization java classes + | | + | |__ webapp -----------------------------> AMP overlay folder - this folder is overlayed (so may overwrite other dependent AMPs) + + | + |__ test __ __ resources + | + | | |__ alfresco/extension ---> alfresco overriding Spring contexts + | |__ properties -------------------------> environment aware application properties files + | | | + | | |__ local -------------> default application.properties + | | + +target - Project build dir + + +FAQ: +---- +--- Eclipse configuration +-Run ' mvn eclipse:eclipse ' +-hit "Refresh" on your Eclipse project + +--- Db access problems: +Remember to setup appropriate permissions for selected db / build profile. +You can either edit accordingly and then run: mysql -u root < tools/mysql/db_setup.sql + +or if you use POM property 'alfresco.db.name' you have sql files already filtered (after process-resources phase) in + +mysql -u root -p < target/classes/tools/[db_setup,db_remove].sql + +--- Out of memory errors: +Run your build with : +MAVEN_OPTS="-Xms256m -Xmx512m -XX:PermSize=128m" mvn ... ... + +--- Content integrity errors on restore running with jetty embedded +Did you remove also alf_data_jetty apart from the alf_jetty db ? + +--- Release Problems with LC_ALL +If underlying svn complains about LC_ALL variable please consider running your release prepending: +LC_ALL="C" (macosx environments, see http://svn.haxx.se/users/archive-2006-07/0320.shtml) + +-- Deploy a generally available AMP into a maven repo for dependency usage + +mvn deploy:deploy-file -DrepositoryId=repo +-Dfile=/Users/youruser/projectz/alfresco/alfresco-recordsmanagement-2.1.0.amp +-DgroupId=org.alfresco.community -DartifactId=recordsmanagement -Dversion=2.1.0 +-Dpackaging=amp -Durl=scp://... \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/TODO.txt b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/TODO.txt new file mode 100644 index 00000000..95f711aa --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/TODO.txt @@ -0,0 +1,42 @@ +====================================================================== +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. +====================================================================== + +Known Issues: +------------- + + + +MAJOR: +- maven-amp-plugin filtering broken + + +MINOR: +- cannot use maven SNAPSHOT versioning as it's copied over in the module.properties +file and not accepted by alfresco as valid module version number + + +TRIVIAL: +- Slighly different deployment for AMP and test WAR. In the test jetty +war java classes are *not* packed in the war as in the AMP specification, +but this *must* not have functional impacts on the application + +IMPROVEMENTS: +- maven-amp-plugin is *heavily* redundant. must be simplified to package an +amp and process overlays +- maven-amp-plugin could read maven dependencies and turn them into +module dependencies in module.properties +- maven-sql-plugin to autocreate jetty db diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/module.properties b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/module.properties new file mode 100644 index 00000000..79b5d81e --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/module.properties @@ -0,0 +1,47 @@ +# 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. + + + +# SDK Sample module + +# ==== Beginning of Alfresco required/optional properties ====== # + +module.id=${pom.groupId}.${pom.artifactId} +#module.aliases=myModule-123, my-module +module.title=${pom.name} +module.description=${pom.description} +module.version=${pom.version} + +# The following optional properties can be used to prevent the module from being added +# to inappropriate versions of the WAR file. +# module.repo.version.min=2.0 +# module.repo.version.max=2.1 + +# FIXME: This dependencies should come out of mvn dependencies on amp + +# The following describe dependencies on other modules +# Depends on net.sf.myproject.module.SupportModuleA version ${version} or later +# module.depends.net.sf.myproject.module.SupportModuleA=${version}-* +# Depends on net.sf.myproject.module.SupportModuleA version ${version} to 2.0 +# module.depends.net.sf.myproject.module.SupportModuleB=${version}-2.0 +# Depends on net.sf.myproject.module.SupportModuleC - any version +# module.depends.net.sf.myproject.module.SupportModuleB=* + + +# ==== End of Alfresco required/optional properties ======= # + + +# ==== Beginning of module required properties/optional ====== # \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/pom.xml b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/pom.xml new file mode 100644 index 00000000..bc2d4198 --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/pom.xml @@ -0,0 +1,308 @@ + + + + 4.0.0 + com.sourcesense.alfresco + demoamp + amp + Maven Alfresco AMP Packaging Sample + + 1.0 + Test AMP project + + + local + + ${artifactId}-webapp + + ./alf_data_jetty + alf_jetty + error + ${project.build.directory}/ + + + debug + + + + + alfresco.community + alfresco-repository + 2.1.0 + provided + + + org.springframework + spring + 2.0 + provided + + + + + + mysql + mysql-connector-java + 5.0.3 + + + + + + + maven-compiler-plugin + + 1.5 + 1.5 + + + + org.alfresco.maven.plugin + maven-amp-plugin + 1.0.0 + true + + + false + + + + org.alfresco.community + recordsmanagement + 2.1.0 + amp + + + + + + + + + + + true + src/main/resources + + **README-* + + + + + + + + webapp + + src/test/properties/${env}/application.properties + jetty:run-exploded + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack-amps + process-resources + + unpack-dependencies + + + amp + ${build.directory}/${webapp.name} + META* + + + + + + + org.alfresco.maven.plugin + maven-amp-plugin + 1.0.0 + + + + + org.apache.maven.plugins + maven-war-plugin + + + + it + package + + exploded + + + + + false + + ${build.directory}/${webapp.name} + + false + + licenses/** + + + + ${build.testOutputDirectory} + WEB-INF/classes + true + + ** + + + + + src/main/webapp + WEB-INF/licenses + + licenses/*.* + + false + + + + + + + org.alfresco.maven.plugin + maven-amp-plugin + 1.0.0 + + + + + org.mortbay.jetty + maven-jetty-plugin + + + + it + integration-test + + run-exploded + + + /${webapp.name} + ${pom.build.directory}/${webapp.name} + 10 + + + 8080 + 60000 + + + + + + + + + + + true + src/test/resources + + + + true + src/test/properties/${env} + alfresco/extension + + + + true + . + + module.properties + + alfresco/module/${groupId}.${artifactId} + + + + + + + + alfresco.community + alfresco + 2.1.0 + war + + + + + + diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/java/com/sourcesense/demoamp/Demo.java b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/java/com/sourcesense/demoamp/Demo.java new file mode 100644 index 00000000..8a29824c --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/java/com/sourcesense/demoamp/Demo.java @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2005-2007 Alfresco Software Limited. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + * As a special exception to the terms and conditions of version 2.0 of + * the GPL, you may redistribute this Program in connection with Free/Libre + * and Open Source Software ("FLOSS") applications as described in Alfresco's + * FLOSS exception. You should have recieved a copy of the text describing + * the FLOSS exception, and it is also available here: + * http://www.alfresco.com/legal/licensing" + */ +package com.sourcesense.demoamp; + +/** + * This class does nothing except dump some output to system.out. + * + * @author Derek Hulley + */ +public class Demo +{ + public void init() + { + System.out.println("SDK Demo AMP class has been loaded"); + } +} diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/java/com/sourcesense/demoamp/DemoComponent.java b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/java/com/sourcesense/demoamp/DemoComponent.java new file mode 100644 index 00000000..f6ef5bf5 --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/java/com/sourcesense/demoamp/DemoComponent.java @@ -0,0 +1,41 @@ +/* + 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 com.sourcesense.demoamp; + +import java.util.logging.Logger; + +import org.alfresco.repo.module.AbstractModuleComponent; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * A basic component that will be started for this module. + * + * @author Derek Hulley + */ +public class DemoComponent extends AbstractModuleComponent +{ + Log log = LogFactory.getLog(DemoComponent.class); + + @Override + protected void executeInternal() throws Throwable + { + System.out.println("DemoComponent has been executed"); + log.debug("Test debug logging is working"); + log.info("This should not be outputted by default"); + } +} diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/org.alfresco.module.demoamp/context/service-context.xml b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/org.alfresco.module.demoamp/context/service-context.xml new file mode 100644 index 00000000..1dd4b07e --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/org.alfresco.module.demoamp/context/service-context.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/org.alfresco.module.demoamp/log4j.properties b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/org.alfresco.module.demoamp/log4j.properties new file mode 100644 index 00000000..960dd90b --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/org.alfresco.module.demoamp/log4j.properties @@ -0,0 +1,41 @@ +# 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. + #----------------------------------------------------------------------- + # ${artifactId} module log4j.properties + # + # NOTE + # ---- + # Log4j uses the following logging levels: + # debug,info,warn,error,fatal + # + # To set the logging level of {fullClassName} to {loglevel}, + # add a line to this file of the following form: + # + # log4j.logger.{fullClassName}={loglevel} + # + # For example, to make 'com.example.MyExample' produce 'debug' + # logs, add a line like this: + # + # log4j.logger.com.example.MyExample=debug + # + # + # WARNING + # ------- + # Log properties in this log4j.properties file override/augment + # those in the webapp's main log4j.properties. + # + #----------------------------------------------------------------------- + + log4j.logger.com.sourcesense.demoamp.DemoComponent=${module.log.level} \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/org.alfresco.module.demoamp/module-context.xml b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/org.alfresco.module.demoamp/module-context.xml new file mode 100644 index 00000000..b2c5cee7 --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/org.alfresco.module.demoamp/module-context.xml @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/css/demoamp.css b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/css/demoamp.css new file mode 100644 index 00000000..c24bc1bd --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/css/demoamp.css @@ -0,0 +1,16 @@ +/* + 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. + */ \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/images/sourcesense.gif b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/images/sourcesense.gif new file mode 100644 index 00000000..0b80b9d2 Binary files /dev/null and b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/images/sourcesense.gif differ diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/jsp/demoamp.jsp b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/jsp/demoamp.jsp new file mode 100644 index 00000000..f442d2ef --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/jsp/demoamp.jsp @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/licenses/README-licenses.txt b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/licenses/README-licenses.txt new file mode 100644 index 00000000..2a848d02 --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/licenses/README-licenses.txt @@ -0,0 +1,2 @@ +This folder (root in the AMP) gets mapped automagically in WEB-INF/licenses +in the war build \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/scripts/demoamp.js b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/scripts/demoamp.js new file mode 100644 index 00000000..c24bc1bd --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/main/webapp/scripts/demoamp.js @@ -0,0 +1,16 @@ +/* + 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. + */ \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/properties/local/application.properties b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/properties/local/application.properties new file mode 100644 index 00000000..dc0a167d --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/properties/local/application.properties @@ -0,0 +1,139 @@ +# 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. + +# RUN TIME PROPERTIES +# ------------------- + +# Sample custom content and index data location +# This will create alf_data Relative to appserver run folder +# In this default file we take the property from the POM (for compatbility with local jetty and jboss deployments) but it can also be edited here. +dir.root=${alfresco.data.location} +# Allowed values are: NONE, AUTO, FULL +index.recovery.mode=FULL + +# Fail or not when there are node integrity checker errors +integrity.failOnError=true + +# database connection properties +# MySQL connection (This is default and requires mysql-connector-java-5.0.3-bin.jar, which ships with the Alfresco server) + +db.driver=org.gjt.mm.mysql.Driver +db.url=jdbc:mysql://localhost/${alfresco.db.name} +db.username=alfresco +db.password=alfresco +db.pool.initial=10 +db.pool.max=100 + +# MySQL dialect +hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect + + + + +# Change the following values only if you know what you're doing. +# Default should suffice in most cases when running jetty embedded +# for amp testing + + + + + +# Property to control whether schema updates are performed automatically. +# Updates must be enabled during upgrades as, apart from the static upgrade scripts, +# there are also auto-generated update scripts that will need to be executed. After +# upgrading to a new version, this can be disabled. +#db.schema.update=true + + +# File servers related properties +# For local builds we disable CIFS and FTP. Edit the following property to reenable them +smb.server.enabled=false +smb.server.name=CFS_SHARE_LOCAL +smb.server.domain=mycompany.com +smb.server.bindto=127.0.0.1 +smb.tcpip.port=1445 +netbios.session.port=1139 +netbios.name.port=1137 +netbios.datagram.port=1138 +ftp.server.enabled=false +ftp.port=1121 +ftp.authenticator=alfresco + +# This properties file is used to configure LDAP authentication +# NB: The following LDAP related properties are read only in case -Denteprise mvn build property is specified +# Wheter to allow silent deletion of users in the Alfresco UI (note: users will be then resynced in the next synchronization) +ldap.authentication.allowDeleteUser=true +# LDAP JNDI provider +ldap.authentication.provider=com.sun.jndi.ldap.LdapCtxFactory +# Url and protocol for LDAP server to carry authentication against +ldap.authentication.url=ldap://ldap.mycompany.com:636 +# can be (simple, ssl) +ldap.authentication.protcol=ssl +# Credentials with full access to the directoty used +ldap.authentication.adminUser=ou=Admin,ou=Services,o=Company +ldap.authentication.adminPassword=secret +# Wheter to allow unauthenticated guest a read only login +ldap.authentication.guestLogin.allowed=false +# Wheter users can be created on the fly upon successful external (e.g. LDAP) authentication. Useful to avoid user synchronization in case just uid and pwd are needed for a user +server.transaction.allow-writes=true +# Wheter user names are case sensitive +user.name.caseSensitive=true +# Wheter the synchronization process has to process duplicated users (e.g. synced users and users coming from the sync) +personService.processDuplicates=true +# Which action to take when processin duplicates. One of: LEAVE, SPLIT, DELETE +personService.duplicateMode=DELETE +# Which of the users (in case of SPLIT duplicates policy) should be considered valid +personService.lastIsBest=true +# Wheter auto created users should be considered when processing duplicates +personService.includeAutoCreated=true +# The query to find the people to import +ldap.synchronisation.personQuery=(objectclass=inetOrgPerson) +# The search base of the query to find people to import +ldap.synchronisation.personSearchBase=ou=Identities,ou=mycompany,o=com +# The attribute name on people objects found in LDAP to use as the uid in Alfresco +ldap.synchronisation.userIdAttributeName=cn +# The attribute on person objects in LDAP to map to the first name property in Alfresco +ldap.synchronisation.userFirstNameAttributeName=givenName +# The attribute on person objects in LDAP to map to the last name property in Alfresco +ldap.synchronisation.userLastNameAttributeName=sn +# The attribute on person objects in LDAP to map to the email property in Alfresco +ldap.synchronisation.userEmailAttributeName=cn +# The attribute on person objects in LDAP to map to the organizational id property in Alfresco +ldap.synchronisation.userOrganizationalIdAttributeName=maildomain +# The default home folder provider to use for people created via LDAP import +ldap.synchronisation.defaultHomeFolderProvider=companyHomeFolderProvider +# The query to find group objects +ldap.synchronisation.groupQuery=(objectclass=AlfrescoGroup) +# The search base to use to find group objects +ldap.synchronisation.groupSearchBase=ou=AlfrescoGroups,ou=mycompany,o=com +# The attribute on LDAP group objects to map to the gid property in Alfrecso +ldap.synchronisation.groupIdAttributeName=cn +# The group type in LDAP +ldap.synchronisation.groupType=AlfrescoGroup +# The person type in LDAP +ldap.synchronisation.personType=inetOrgPerson +# The attribute in LDAP on group objects that defines the DN for its members +ldap.synchronisation.groupMemberAttributeName=member +# The cron expression defining when people imports should take place (e.g. every evening at 22:00 hours) +ldap.synchronisation.import.person.cron=0 0 22 * * ? +# The cron expression defining when group imports should take place (e.g. every evening at 21:45 hours) +ldap.synchronisation.import.group.cron=0 45 21 * * ? +# Should all groups be cleared out at import time? +# - this is safe as groups are not used in Alfresco for other things (unlike person objects which you should never clear out during an import) +# - setting this to true means old group definitions will be tidied up. +ldap.synchronisation.import.group.clearAllChildren=false + + + diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/custom-repository-context.xml b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/custom-repository-context.xml new file mode 100644 index 00000000..4d356100 --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/custom-repository-context.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + true + + + + classpath:alfresco/repository.properties + classpath:alfresco/version.properties + classpath:alfresco/domain/transaction.properties + + + classpath:alfresco/extension/application.properties + + + + + + + + classpath:alfresco/domain/hibernate-cfg.properties + + + + + \ No newline at end of file diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/file-servers-custom.xml b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/file-servers-custom.xml new file mode 100644 index 00000000..11742c72 --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/file-servers-custom.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + Alfresco CIFS Server + + + 255.255.255.0 + + + + + + ${smb.server.bindto} + + + + + + + + + + + + + + + + + + + ${ftp.port} + + + + + + + + + + + + workspace://SpacesStore + /app:company_home + + + + __Alfresco.url + http://${localname}/ + + + + + + + + + + alfresco/desktop/Alfresco.exe + http://${localname}/ + + + org.alfresco.filesys.smb.server.repo.desk.CheckInOutDesktopAction + CheckInOut + __CheckInOut.exe + + + org.alfresco.filesys.smb.server.repo.desk.JavaScriptDesktopAction + JavaScriptURL + __ShowDetails.exe + + anyFiles + copyToTarget + + + + + + + + + + + + + + + + + diff --git a/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/resources/log4j.properties b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/resources/log4j.properties new file mode 100644 index 00000000..8d919e9b --- /dev/null +++ b/maven-alfresco-amp-archetype/src/main/resources/archetype-resources/src/test/resources/log4j.properties @@ -0,0 +1,147 @@ +# 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. + + +# Customized alfresco log location +# Set root logger level to error +log4j.rootLogger=${webapp.log.level}, Console, File + +###### Console appender definition ####### + +# All outputs currently set to be a ConsoleAppender. +log4j.appender.Console=org.apache.log4j.ConsoleAppender +log4j.appender.Console.layout=org.apache.log4j.PatternLayout +log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{3}] %m%n +#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n + +###### File appender definition ####### +log4j.appender.File=org.apache.log4j.DailyRollingFileAppender +log4j.appender.File.File=${webapp.log.dir}alfresco.log +log4j.appender.File.Append=true +log4j.appender.File.DatePattern='.'yyyy-MM-dd +log4j.appender.File.layout=org.apache.log4j.PatternLayout +log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n + +###### Hibernate specific appender definition ####### +#log4j.appender.file=org.apache.log4j.FileAppender +#log4j.appender.file.File=hibernate.log +#log4j.appender.file.layout=org.apache.log4j.PatternLayout +#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n + +###### Log level overrides ####### + +log4j.logger.org.alfresco.repo.model.filefolder=info + +# Hibernate +log4j.logger.org.hibernate=error +log4j.logger.org.hibernate.util.JDBCExceptionReporter=fatal +log4j.logger.org.hibernate.event.def.AbstractFlushingEventListener=fatal +#log4j.logger.org.hibernate.cache.EhCacheProvider=warn +log4j.logger.org.hibernate.type=warn +# log4j.logger.org.hibernate.persister.collection=DEBUG + +# Spring +log4j.logger.org.springframework=warn + +# Axis/WSS4J +log4j.logger.org.apache.axis=info +log4j.logger.org.apache.ws=info + +# MyFaces +log4j.logger.org.apache.myfaces.util.DebugUtils=info +log4j.logger.org.apache.myfaces.el.VariableResolverImpl=error +log4j.logger.org.apache.myfaces.application.jsp.JspViewHandlerImpl=error +log4j.logger.org.apache.myfaces.taglib=error + +# log prepared statement cache activity ### +log4j.logger.org.hibernate.ps.PreparedStatementCache=info + +# Alfresco +log4j.logger.org.alfresco=error +log4j.logger.org.alfresco.repo.avm=info +log4j.logger.org.alfresco.config=info +log4j.logger.org.alfresco.sample=info +log4j.logger.org.alfresco.web=info +log4j.logger.org.alfresco.web.scripts=warn +#log4j.logger.org.alfresco.web.ui.repo.component.UIActions=debug +#log4j.logger.org.alfresco.web.ui.repo.tag.PageTag=debug +#log4j.logger.org.alfresco.web.bean.clipboard=debug +log4j.logger.org.alfresco.repo.webservice=info +log4j.logger.org.alfresco.service.descriptor.DescriptorService=info +#log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=info +#log4j.logger.org.alfresco.web.ui.common.Utils=info +log4j.logger.org.alfresco.repo.admin.patch.PatchExecuter=info +log4j.logger.org.alfresco.repo.module.ModuleServiceImpl=info +log4j.logger.org.alfresco.repo.domain.schema.SchemaBootstrap=info +log4j.logger.org.alfresco.repo.admin.ConfigurationChecker=info +log4j.logger.org.alfresco.repo.node.index.FullIndexRecoveryComponent=info +log4j.logger.org.alfresco.util.OpenOfficeConnectionTester=warn +log4j.logger.org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl=warn +#log4j.logger.org.alfresco.web.app.DebugPhaseListener=debug +#log4j.logger.org.alfresco.repo.cache.EhCacheTracerJob=debug +#log4j.logger.org.alfresco.repo.search.Indexer=debug +#log4j.logger.org.alfresco.repo.workflow=info +#log4j.logger.org.alfresco.repo.jscript=DEBUG +log4j.logger.org.alfresco.repo.jscript.AlfrescoRhinoScriptDebugger=off + +# CIFS server debugging +#log4j.logger.org.alfresco.smb.protocol=debug +#log4j.logger.org.alfresco.smb.protocol.auth=debug +#log4j.logger.org.alfresco.acegi=debug + +# FTP server debugging +#log4j.logger.org.alfresco.ftp.protocol=debug +#log4j.logger.org.alfresco.ftp.server=debug + +# WebDAV debugging +#log4j.logger.org.alfresco.webdav.protocol=debug + +# NTLM servlet filters +#log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug +#log4j.logger.org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter=debug + +# Integrity message threshold - if 'failOnViolation' is off, then WARNINGS are generated +log4j.logger.org.alfresco.repo.node.integrity=ERROR + +# New indexer debugging +#log4j.logger.org.alfresco.repo.search.impl.lucene.index=DEBUG + +# Audit debugging +# log4j.logger.org.alfresco.repo.audit=DEBUG +# log4j.logger.org.alfresco.repo.audit.model=DEBUG + +# Turn off Spring remoting warnings that should really be info or debug. +log4j.logger.org.springframework.remoting.support=error + +# Templating debugging +# log4j.logger.org.alfresco.web.forms=debug +# log4j.logger.org.chiba.xml.xforms=debug + +# Property sheet and modelling debugging +# change to error to hide the warnings about missing properties and associations +log4j.logger.alfresco.missingProperties=warn +log4j.logger.org.alfresco.web.ui.repo.component.property.UIChildAssociation=warn +log4j.logger.org.alfresco.web.ui.repo.component.property.UIAssociation=warn +#log4j.logger.org.alfresco.web.ui.repo.component.property=debug +#log4j.logger.org.alfresco.repo.dictionary.DictionaryDAO=info + + +# Virtualization Server Registry +#log4j.logger.org.alfresco.mbeans.VirtServerRegistry=debug + +# Link Validation debugging +#log4j.logger.org.alfresco.linkvalidation.LinkValidationServiceImpl=debug +#log4j.logger.org.alfresco.linkvalidation.LinkValidationStoreCallbackHandler=debug + diff --git a/maven-alfresco-amp-archetype/target/mvn-eclipse-cache.properties b/maven-alfresco-amp-archetype/target/mvn-eclipse-cache.properties new file mode 100644 index 00000000..9090d088 --- /dev/null +++ b/maven-alfresco-amp-archetype/target/mvn-eclipse-cache.properties @@ -0,0 +1,2 @@ +#Temporary index for unavailable sources and javadocs +#Fri Jul 04 02:25:03 CEST 2008