Changeset 5524
- Timestamp:
- 01/21/11 18:25:29 (16 months ago)
- Location:
- branches/release-0.16.x
- Files:
-
- 8 removed
- 152 modified
- 29 copied
-
. (modified) (1 prop)
-
ChangeLog (modified) (1 prop)
-
INSTALL (modified) (1 prop)
-
LGPL.txt (modified) (1 prop)
-
LICENSE (modified) (1 prop)
-
pom.xml (modified) (2 diffs)
-
profiles.xml.sample (modified) (1 prop)
-
pustefix-archetypes/pustefix-archetype-application/pom.xml (modified) (2 diffs)
-
pustefix-archetypes/pustefix-archetype-application/src/main/resources/META-INF/maven/archetype.xml (deleted)
-
pustefix-archetypes/pustefix-archetype-application/src/main/resources/archetype-resources/profiles.xml (deleted)
-
pustefix-archetypes/pustefix-archetype-application/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml (modified) (1 prop)
-
pustefix-archetypes/pustefix-archetype-basic (modified) (1 prop)
-
pustefix-archetypes/pustefix-archetype-basic/pom.xml (modified) (2 diffs)
-
pustefix-archetypes/pustefix-archetype-basic/src/main/resources/META-INF/maven/archetype-metadata.xml (modified) (1 diff)
-
pustefix-archetypes/pustefix-archetype-basic/src/main/resources/archetype-resources/pom.xml (modified) (1 diff)
-
pustefix-archetypes/pustefix-archetype-module/pom.xml (modified) (2 diffs)
-
pustefix-archetypes/pustefix-archetype-module/src/main/resources/META-INF/maven/archetype.xml (deleted)
-
pustefix-core (modified) (1 prop)
-
pustefix-core/pom.xml (modified) (1 diff)
-
pustefix-core/src/data/core (modified) (1 prop)
-
pustefix-core/src/main/java (modified) (1 prop)
-
pustefix-core/src/main/java/de (modified) (1 prop)
-
pustefix-core/src/main/java/de/schlund/pfixcore/generator/annotation/IWrapper.java (modified) (1 diff)
-
pustefix-core/src/main/java/de/schlund/pfixcore/generator/iwrpgen/IWrapperAnnotationProcessor.java (modified) (2 diffs)
-
pustefix-core/src/main/java/de/schlund/pfixcore/util/JarFileCache.java (modified) (2 diffs)
-
pustefix-core/src/main/java/de/schlund/pfixcore/util/JarFileURLConnection.java (modified) (2 diffs)
-
pustefix-core/src/main/java/de/schlund/pfixcore/util/ModuleDescriptor.java (modified) (3 diffs, 1 prop)
-
pustefix-core/src/main/java/de/schlund/pfixcore/util/TransformerCallback.java (modified) (2 diffs)
-
pustefix-core/src/main/java/de/schlund/pfixcore/util/email/EmailSender.java (modified) (1 prop)
-
pustefix-core/src/main/java/de/schlund/pfixxml/IncludeDocumentExtension.java (modified) (3 diffs)
-
pustefix-core/src/main/java/de/schlund/pfixxml/IncludeDocumentExtensionSaxon1.java (modified) (1 diff)
-
pustefix-core/src/main/java/de/schlund/pfixxml/IncludeDocumentExtensionSaxon2.java (modified) (1 diff)
-
pustefix-core/src/main/java/de/schlund/pfixxml/config/includes/IncludesResolver.java (modified) (3 diffs)
-
pustefix-core/src/main/java/de/schlund/pfixxml/resources/DynamicResourceInfo.java (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/java/de/schlund/pfixxml/resources/DynamicResourceInfo.java)
-
pustefix-core/src/main/java/de/schlund/pfixxml/resources/DynamicResourceProvider.java (modified) (5 diffs)
-
pustefix-core/src/main/java/de/schlund/pfixxml/resources/ModuleResource.java (modified) (2 diffs)
-
pustefix-core/src/main/java/de/schlund/pfixxml/resources/ResourceUtil.java (modified) (1 diff)
-
pustefix-core/src/main/java/de/schlund/pfixxml/serverutil/SessionAdmin.java (modified) (1 diff)
-
pustefix-core/src/main/java/de/schlund/pfixxml/serverutil/SessionAdminMBean.java (modified) (1 diff)
-
pustefix-core/src/main/java/de/schlund/pfixxml/util/SimpleResolver.java (modified) (1 prop)
-
pustefix-core/src/main/java/org (modified) (1 prop)
-
pustefix-core/src/main/java/org/pustefixframework/admin/mbeans/Admin.java (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/java/org/pustefixframework/admin/mbeans/Admin.java)
-
pustefix-core/src/main/java/org/pustefixframework/admin/mbeans/AdminBroadcaster.java (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/java/org/pustefixframework/admin/mbeans/AdminBroadcaster.java)
-
pustefix-core/src/main/java/org/pustefixframework/admin/mbeans/AdminBroadcasterMBean.java (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/java/org/pustefixframework/admin/mbeans/AdminBroadcasterMBean.java)
-
pustefix-core/src/main/java/org/pustefixframework/admin/mbeans/AdminMBean.java (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/java/org/pustefixframework/admin/mbeans/AdminMBean.java)
-
pustefix-core/src/main/java/org/pustefixframework/admin/mbeans/WebappAdmin.java (deleted)
-
pustefix-core/src/main/java/org/pustefixframework/config/contextxmlservice/parser (modified) (1 prop)
-
pustefix-core/src/main/java/org/pustefixframework/config/contextxmlservice/parser/PageRequestOutputResourceParsingHandler.java (modified) (1 diff)
-
pustefix-core/src/main/java/org/pustefixframework/config/generic/PropertyFileReader.java (modified) (2 diffs)
-
pustefix-core/src/main/java/org/pustefixframework/config/project/StaticPathInfo.java (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/java/org/pustefixframework/config/project/StaticPathInfo.java)
-
pustefix-core/src/main/java/org/pustefixframework/config/project/parser/DocrootRequestHandlerParsingHandler.java (modified) (3 diffs)
-
pustefix-core/src/main/java/org/pustefixframework/config/project/parser/PustefixContextXMLRequestHandlerParsingHandler.java (modified) (4 diffs)
-
pustefix-core/src/main/java/org/pustefixframework/config/project/parser/StaticPathParsingHandler.java (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/java/org/pustefixframework/config/project/parser/StaticPathParsingHandler.java)
-
pustefix-core/src/main/java/org/pustefixframework/config/project/parser/WebappAdminParsingHandler.java (deleted)
-
pustefix-core/src/main/java/org/pustefixframework/http/AbstractPustefixRequestHandler.java (modified) (4 diffs)
-
pustefix-core/src/main/java/org/pustefixframework/http/DocrootRequestHandler.java (modified) (6 diffs)
-
pustefix-core/src/main/java/org/pustefixframework/http/PustefixInternalsRequestHandler.java (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/java/org/pustefixframework/http/PustefixInternalsRequestHandler.java)
-
pustefix-core/src/main/java/org/pustefixframework/http/dereferer/DerefRequestHandler.java (modified) (1 prop)
-
pustefix-core/src/main/java/org/pustefixframework/http/internal/PustefixInit.java (modified) (4 diffs)
-
pustefix-core/src/main/java/org/pustefixframework/util/FrameworkInfo.java (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/java/org/pustefixframework/util/FrameworkInfo.java)
-
pustefix-core/src/main/java/org/pustefixframework/util/javascript/internal/YUICompressorAdapter.java (modified) (1 prop)
-
pustefix-core/src/main/resources (modified) (1 prop)
-
pustefix-core/src/main/resources/META-INF (modified) (1 prop)
-
pustefix-core/src/main/resources/META-INF/org/pustefixframework/config/context-xml-service/parser/context-xml-service-config.xml (modified) (1 prop)
-
pustefix-core/src/main/resources/META-INF/org/pustefixframework/config/project/parser/project-config.xml (modified) (4 diffs)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/dyntxt (modified) (1 prop)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/img/console_showinfo.gif (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/resources/PUSTEFIX-INF/img/console_showinfo.gif)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/img/show_info.gif (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/resources/PUSTEFIX-INF/img/show_info.gif)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/schema/context-xml-service-config.xsd (modified) (1 diff, 1 prop)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/schema/module-descriptor.xsd (modified) (2 diffs)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/script/httpRequest.js (modified) (1 prop)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/xsl (modified) (1 prop)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/forminput.xsl (modified) (1 prop)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/functions.xsl (modified) (1 diff)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/include.xsl (modified) (6 diffs)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/master.xsl (modified) (1 prop)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/pfxinternals.xsl (copied) (copied from branches/release-0.15.x/pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/pfxinternals.xsl)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/utils.xsl (modified) (3 diffs)
-
pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/xmlfontify.xsl (modified) (1 diff)
-
pustefix-core/src/main/resources/pustefix/logging (modified) (1 prop)
-
pustefix-core/src/main/resources/pustefix/xsl (modified) (1 prop)
-
pustefix-core/src/main/resources/pustefix/xsl/depend.xsl (modified) (1 prop)
-
pustefix-core/src/main/resources/pustefix/xsl/lib.xsl (modified) (1 prop)
-
pustefix-core/src/main/resources/pustefix/xsl/log4j.xsl (modified) (1 prop)
-
pustefix-core/src/test (modified) (1 prop)
-
pustefix-core/src/test/java (modified) (1 prop)
-
pustefix-core/src/test/resources/META-INF (modified) (1 prop)
-
pustefix-core/src/test/resources/properties.xml (modified) (1 prop)
-
pustefix-docbook/pom.xml (modified) (2 diffs)
-
pustefix-docbook/src/docbkx (modified) (1 prop)
-
pustefix-docbook/src/docbkx/faq/faq.xml (modified) (1 prop)
-
pustefix-docbook/src/docbkx/reference/advancedtopics.xml (modified) (2 diffs, 1 prop)
-
pustefix-docbook/src/docbkx/reference/configuration.xml (modified) (6 diffs)
-
pustefix-docbook/src/docbkx/reference/module-support.xml (modified) (2 diffs)
-
pustefix-docbook/src/docbkx/reference/news.xml (modified) (4 diffs)
-
pustefix-docbook/src/docbkx/reference/reference.xml (modified) (1 diff, 1 prop)
-
pustefix-docbook/src/docbkx/reference/tooling.xml (copied) (copied from branches/release-0.15.x/pustefix-docbook/src/docbkx/reference/tooling.xml)
-
pustefix-docbook/src/docbkx/reference/xslt.xml (modified) (1 prop)
-
pustefix-docbook/src/docbkx/tutorial/tutorial.xml (modified) (1 prop)
-
pustefix-docbook/src/site/resources/docbkx/css (modified) (1 prop)
-
pustefix-docbook/src/site/resources/docbkx/images (modified) (1 prop)
-
pustefix-docbook/src/site/resources/docbkx/images/reference/pfxinternals-screenshot.png (copied) (copied from branches/release-0.15.x/pustefix-docbook/src/site/resources/docbkx/images/reference/pfxinternals-screenshot.png)
-
pustefix-docbook/src/uml (modified) (1 prop)
-
pustefix-editor/pustefix-editor-backend/pom.xml (modified) (1 diff)
-
pustefix-editor/pustefix-editor-webui/pom.xml (modified) (1 diff)
-
pustefix-editor/pustefix-editor-webui/src/main/webapp/WEB-INF/web.xml (modified) (1 diff, 1 prop)
-
pustefix-plugins/pustefix-webapp-plugin/src/main/java/org/pustefixframework/maven/plugins/Apt.java (modified) (2 diffs)
-
pustefix-plugins/pustefix-webapp-plugin/src/main/java/org/pustefixframework/maven/plugins/PustefixWebappMojo.java (modified) (6 diffs)
-
pustefix-samples/moduletest/src/main/webapp/WEB-INF/project.xml (modified) (1 diff)
-
pustefix-samples/pustefix-hangman/pom.xml (modified) (5 diffs)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/Dictionary.java (modified) (3 diffs)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/DifficultyLevel.java (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/DifficultyLevel.java)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/HighScore.java (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/HighScore.java)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/Score.java (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/Score.java)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/context/ContextPlay.java (modified) (2 diffs)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/context/ContextSettings.java (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/context/ContextSettings.java)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/context/ContextUser.java (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/context/ContextUser.java)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/context/User.java (deleted)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/handler/PlayHandler.java (modified) (4 diffs)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/handler/RegistrationHandler.java (modified) (4 diffs)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/handler/SettingsHandler.java (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/handler/SettingsHandler.java)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/state/ByeState.java (modified) (3 diffs)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/wrapper/Play.iwrp (modified) (1 diff)
-
pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/wrapper/Settings.iwrp (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/wrapper/Settings.iwrp)
-
pustefix-samples/pustefix-hangman/src/main/webapp/WEB-INF/app.xml (modified) (2 diffs)
-
pustefix-samples/pustefix-hangman/src/main/webapp/WEB-INF/depend.xml (modified) (2 diffs)
-
pustefix-samples/pustefix-hangman/src/main/webapp/WEB-INF/spring.xml (modified) (1 diff)
-
pustefix-samples/pustefix-hangman/src/main/webapp/css/style.css (modified) (1 diff)
-
pustefix-samples/pustefix-hangman/src/main/webapp/dyntxt/statusmessages.xml (modified) (1 diff)
-
pustefix-samples/pustefix-hangman/src/main/webapp/img/background.png (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/webapp/img/background.png)
-
pustefix-samples/pustefix-hangman/src/main/webapp/img/de (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/webapp/img/de)
-
pustefix-samples/pustefix-hangman/src/main/webapp/img/de/logo.png (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/webapp/img/de/logo.png)
-
pustefix-samples/pustefix-hangman/src/main/webapp/img/default (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/webapp/img/default)
-
pustefix-samples/pustefix-hangman/src/main/webapp/img/default/logo.png (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/webapp/img/default/logo.png)
-
pustefix-samples/pustefix-hangman/src/main/webapp/modules-override/pustefix-core/dyntxt/statusmessages-core-merged.xml (modified) (1 diff)
-
pustefix-samples/pustefix-hangman/src/main/webapp/txt/common.xml (modified) (1 diff)
-
pustefix-samples/pustefix-hangman/src/main/webapp/txt/pages/Bye.xml (deleted)
-
pustefix-samples/pustefix-hangman/src/main/webapp/txt/pages/Highscore.xml (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/webapp/txt/pages/Highscore.xml)
-
pustefix-samples/pustefix-hangman/src/main/webapp/txt/pages/Home.xml (modified) (2 diffs)
-
pustefix-samples/pustefix-hangman/src/main/webapp/txt/pages/Play.xml (modified) (1 diff)
-
pustefix-samples/pustefix-hangman/src/main/webapp/txt/pages/Settings.xml (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-hangman/src/main/webapp/txt/pages/Settings.xml)
-
pustefix-samples/pustefix-hangman/src/main/webapp/xml/frame.xml (modified) (1 diff)
-
pustefix-samples/pustefix-hangman/src/main/webapp/xsl/metatags.xsl (modified) (1 diff)
-
pustefix-samples/pustefix-sample-basic/pom.xml (modified) (1 diff)
-
pustefix-samples/pustefix-sample-firstapp/src/main/webapp/WEB-INF/web.xml (modified) (1 prop)
-
pustefix-samples/pustefix-sample1 (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/pom.xml (modified) (1 diff)
-
pustefix-samples/pustefix-sample1/src/main/java/de (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/main/java/de/schlund/pfixcore/example/EncodingTestHandler.java (modified) (3 diffs)
-
pustefix-samples/pustefix-sample1/src/main/java/de/schlund/pfixcore/example/iwrapper (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/main/java/de/schlund/pfixcore/example/iwrapper/EncodingTest.iwrp (deleted)
-
pustefix-samples/pustefix-sample1/src/main/java/de/schlund/pfixcore/example/iwrapper/EncodingTest.java (copied) (copied from branches/release-0.15.x/pustefix-samples/pustefix-sample1/src/main/java/de/schlund/pfixcore/example/iwrapper/EncodingTest.java)
-
pustefix-samples/pustefix-sample1/src/main/webapp (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/config.conf.xml (modified) (1 diff)
-
pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/pfixlog.xml (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/project.xml (modified) (1 diff)
-
pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/spring.xml (modified) (1 diff)
-
pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/web.xml (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/test (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/test/java (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/test/java/de/schlund/pfixcore/example/HomePageTest.java (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/test/java/de/schlund/pfixcore/generator (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/test/java/de/schlund/pfixcore/generator/iwrpgen/IWrapperBeanTest.java (modified) (1 prop)
-
pustefix-samples/pustefix-sample1/src/test/java/de/schlund/pfixxml/targets/TargetGeneratorTest.java (modified) (1 prop)
-
pustefix-samples/pustefix-samplebank (modified) (1 prop)
-
pustefix-samples/pustefix-samplebank/src/main/java/de (modified) (1 prop)
-
pustefix-samples/pustefix-samplebank/src/main/java/de/schlund/pfixcore/example/bank (modified) (1 prop)
-
pustefix-samples/pustefix-samplebank/src/main/webapp (modified) (1 prop)
-
pustefix-samples/pustefix-samplebank/src/main/webapp/WEB-INF (modified) (1 prop)
-
pustefix-samples/pustefix-samplebank/src/main/webapp/WEB-INF/spring.xml (modified) (1 prop)
-
pustefix-samples/pustefix-samplebank/src/main/webapp/WEB-INF/web.xml (modified) (1 prop)
-
pustefix-samples/pustefix-samplebank/src/test (modified) (1 prop)
-
pustefix-samples/pustefix-testsuite (modified) (1 prop)
-
pustefix-samples/pustefix-testsuite/src/main/java/de (modified) (1 prop)
-
pustefix-samples/pustefix-testsuite/src/main/java/de/schlund/pfixcore/testsuite (modified) (1 prop)
-
pustefix-samples/pustefix-testsuite/src/main/webapp (modified) (1 prop)
-
pustefix-samples/pustefix-testsuite/src/main/webapp/WEB-INF (modified) (1 prop)
-
pustefix-samples/pustefix-testsuite/src/main/webapp/WEB-INF/pfixlog.xml (modified) (1 prop)
-
pustefix-samples/pustefix-testsuite/src/main/webapp/WEB-INF/spring.xml (modified) (1 prop)
-
pustefix-samples/pustefix-testsuite/src/main/webapp/WEB-INF/web.xml (modified) (1 prop)
-
pustefix-samples/pustefix-webservice (modified) (1 prop)
-
pustefix-samples/pustefix-webservice/src/main/java/de (modified) (1 prop)
-
pustefix-samples/pustefix-webservice/src/main/webapp (modified) (1 prop)
-
pustefix-samples/pustefix-webservice/src/main/webapp/WEB-INF (modified) (1 prop)
-
pustefix-samples/pustefix-webservice/src/main/webapp/WEB-INF/web.xml (modified) (1 prop)
-
pustefix-samples/sample-modules/animal-module/src/main/resources/META-INF/pustefix-module.xml (modified) (1 diff)
-
pustefix-samples/sample-modules/pom.xml (modified) (1 diff)
-
pustefix-webservices/pustefix-webservices-core/pom.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-0.16.x
-
Property
svn:mergeinfo set
to
/branches/release-0.15.x merged eligible
-
Property
svn:mergeinfo set
to
-
branches/release-0.16.x/ChangeLog
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/INSTALL
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/LGPL.txt
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/LICENSE
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pom.xml
r5419 r5524 92 92 93 93 <build> 94 <plugins> 95 <plugin> 96 <groupId>org.apache.maven.plugins</groupId> 97 <artifactId>maven-eclipse-plugin</artifactId> 98 <version>2.5.1</version> 99 </plugin> 100 <plugin> 101 <groupId>org.apache.maven.plugins</groupId> 102 <artifactId>maven-compiler-plugin</artifactId> 103 <configuration> 104 <source>1.5</source> 105 <target>1.5</target> 106 </configuration> 107 </plugin> 108 <plugin> 109 <groupId>org.apache.maven.plugins</groupId> 110 <artifactId>maven-jar-plugin</artifactId> 111 <configuration> 112 <archive> 113 <addMavenDescriptor>false</addMavenDescriptor> 114 <manifest> 115 <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 116 <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 117 </manifest> 118 </archive> 119 </configuration> 120 </plugin> 121 <plugin> 122 <groupId>org.apache.maven.plugins</groupId> 123 <artifactId>maven-release-plugin</artifactId> 124 <version>2.1</version> 125 <configuration> 126 <!-- TODO: also building the site failed persistently with !ClassNotFoundException for !GlobalConfig 94 <extensions> 95 <extension> 96 <groupId>org.apache.maven.wagon</groupId> 97 <artifactId>wagon-ssh-external</artifactId> 98 <version>1.0-beta-7</version> 99 </extension> 100 </extensions> 101 <pluginManagement> 102 <plugins> 103 <plugin> 104 <groupId>org.apache.maven.plugins</groupId> 105 <artifactId>maven-eclipse-plugin</artifactId> 106 <version>2.8</version> 107 <configuration> 108 <downloadSources>true</downloadSources> 109 </configuration> 110 </plugin> 111 <plugin> 112 <groupId>org.apache.maven.plugins</groupId> 113 <artifactId>maven-install-plugin</artifactId> 114 <version>2.3.1</version> 115 </plugin> 116 <plugin> 117 <groupId>org.apache.maven.plugins</groupId> 118 <artifactId>maven-surefire-plugin</artifactId> 119 <version>2.7.1</version> 120 <configuration> 121 <useFile>false</useFile> 122 </configuration> 123 </plugin> 124 <plugin> 125 <groupId>org.apache.maven.plugins</groupId> 126 <artifactId>maven-jar-plugin</artifactId> 127 <version>2.3.1</version> 128 <configuration> 129 <archive> 130 <addMavenDescriptor>false</addMavenDescriptor> 131 <manifest> 132 <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 133 <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 134 </manifest> 135 </archive> 136 </configuration> 137 </plugin> 138 <plugin> 139 <groupId>org.apache.maven.plugins</groupId> 140 <artifactId>maven-source-plugin</artifactId> 141 <version>2.1.2</version> 142 </plugin> 143 <plugin> 144 <groupId>org.apache.maven.plugins</groupId> 145 <artifactId>maven-clean-plugin</artifactId> 146 <version>2.4.1</version> 147 </plugin> 148 <plugin> 149 <groupId>org.apache.maven.plugins</groupId> 150 <artifactId>maven-deploy-plugin</artifactId> 151 <version>2.5</version> 152 </plugin> 153 <plugin> 154 <groupId>org.apache.maven.plugins</groupId> 155 <artifactId>maven-resources-plugin</artifactId> 156 <version>2.4.3</version> 157 </plugin> 158 <plugin> 159 <groupId>org.apache.maven.plugins</groupId> 160 <artifactId>maven-compiler-plugin</artifactId> 161 <version>2.3.2</version> 162 <configuration> 163 <source>1.5</source> 164 <target>1.5</target> 165 </configuration> 166 </plugin> 167 <plugin> 168 <groupId>org.apache.maven.plugins</groupId> 169 <artifactId>maven-release-plugin</artifactId> 170 <version>2.1</version> 171 <configuration> 172 <!-- TODO: also building the site failed persistently with !ClassNotFoundException for !GlobalConfig 127 173 (yes, I tried mvn install, it did not help). --> 128 <goals>deploy</goals> 129 <!-- Workaround for http://jira.codehaus.org/browse/MRELEASE-271 --> 130 <preparationGoals>clean install</preparationGoals> 131 </configuration> 132 </plugin> 133 </plugins> 174 <goals>deploy</goals> 175 <!-- Workaround for http://jira.codehaus.org/browse/MRELEASE-271 --> 176 <preparationGoals>clean install</preparationGoals> 177 </configuration> 178 </plugin> 179 </plugins> 180 </pluginManagement> 134 181 </build> 135 182 <reporting> … … 143 190 <groupId>org.apache.maven.plugins</groupId> 144 191 <artifactId>maven-javadoc-plugin</artifactId> 192 <version>2.7</version> 145 193 </plugin> 146 194 <plugin> 147 195 <groupId>org.apache.maven.plugins</groupId> 148 196 <artifactId>maven-changelog-plugin</artifactId> 197 <version>2.2</version> 149 198 </plugin> 150 199 <plugin> 151 200 <groupId>org.apache.maven.plugins</groupId> 152 201 <artifactId>maven-jxr-plugin</artifactId> 202 <version>2.2</version> 153 203 </plugin> 154 204 </plugins> -
branches/release-0.16.x/profiles.xml.sample
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-archetypes/pustefix-archetype-application/pom.xml
r5419 r5524 23 23 <groupId>org.apache.maven.archetype</groupId> 24 24 <artifactId>archetype-packaging</artifactId> 25 <version>2.0 -alpha-4</version>25 <version>2.0</version> 26 26 </extension> 27 27 </extensions> … … 29 29 <plugin> 30 30 <artifactId>maven-archetype-plugin</artifactId> 31 <version>2.0 -alpha-4</version>31 <version>2.0</version> 32 32 <extensions>true</extensions> 33 33 </plugin> -
branches/release-0.16.x/pustefix-archetypes/pustefix-archetype-application/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-archetypes/pustefix-archetype-basic
- Property svn:ignore
-
old new 1 pustefix-archetype-basic.i?? 1 2 .classpath 2 3 .project
-
- Property svn:ignore
-
branches/release-0.16.x/pustefix-archetypes/pustefix-archetype-basic/pom.xml
r5419 r5524 23 23 <groupId>org.apache.maven.archetype</groupId> 24 24 <artifactId>archetype-packaging</artifactId> 25 <version>2.0 -alpha-5</version>25 <version>2.0</version> 26 26 </extension> 27 27 </extensions> … … 31 31 <plugin> 32 32 <artifactId>maven-archetype-plugin</artifactId> 33 <version>2.0 -alpha-5</version>33 <version>2.0</version> 34 34 <extensions>true</extensions> 35 35 </plugin> 36 36 </plugins> 37 37 </pluginManagement> 38 <resources> 39 <resource> 40 <targetPath>${project.build.directory}/classes</targetPath> 41 <filtering>false</filtering> 42 <directory>src/main/resources</directory> 43 <excludes> 44 <exclude>META-INF/maven/archetype-metadata.xml</exclude> 45 </excludes> 46 </resource> 47 <resource> 48 <targetPath>${project.build.directory}/classes</targetPath> 49 <filtering>true</filtering> 50 <directory>src/main/resources</directory> 51 <includes> 52 <include>META-INF/maven/archetype-metadata.xml</include> 53 </includes> 54 </resource> 55 </resources> 38 56 </build> 39 57 -
branches/release-0.16.x/pustefix-archetypes/pustefix-archetype-basic/src/main/resources/META-INF/maven/archetype-metadata.xml
r5208 r5524 50 50 <defaultValue>mytld.myorg.myapp</defaultValue> 51 51 </requiredProperty> 52 <requiredProperty key="pustefixVersion"> 53 <defaultValue>${pom.version}</defaultValue> 54 </requiredProperty> 52 55 </requiredProperties> 53 56 </archetype-descriptor> -
branches/release-0.16.x/pustefix-archetypes/pustefix-archetype-basic/src/main/resources/archetype-resources/pom.xml
r5412 r5524 13 13 14 14 <properties> 15 <pustefix.version> 0.15.11-SNAPSHOT</pustefix.version>15 <pustefix.version>${pustefixVersion}</pustefix.version> 16 16 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 17 17 </properties> -
branches/release-0.16.x/pustefix-archetypes/pustefix-archetype-module/pom.xml
r5419 r5524 22 22 <groupId>org.apache.maven.archetype</groupId> 23 23 <artifactId>archetype-packaging</artifactId> 24 <version>2.0 -alpha-4</version>24 <version>2.0</version> 25 25 </extension> 26 26 </extensions> … … 28 28 <plugin> 29 29 <artifactId>maven-archetype-plugin</artifactId> 30 <version>2.0 -alpha-4</version>30 <version>2.0</version> 31 31 <extensions>true</extensions> 32 32 </plugin> -
branches/release-0.16.x/pustefix-core
-
branches/release-0.16.x/pustefix-core/pom.xml
r5436 r5524 84 84 <groupId>org.springframework</groupId> 85 85 <artifactId>spring-context</artifactId> 86 <version>3.0. 3.RELEASE</version>86 <version>3.0.5.RELEASE</version> 87 87 </dependency> 88 88 <dependency> 89 89 <groupId>org.springframework</groupId> 90 90 <artifactId>spring-webmvc</artifactId> 91 <version>3.0. 3.RELEASE</version>91 <version>3.0.5.RELEASE</version> 92 92 </dependency> 93 93 <dependency> 94 94 <groupId>org.springframework</groupId> 95 95 <artifactId>spring-test</artifactId> 96 <version>3.0. 3.RELEASE</version>96 <version>3.0.5.RELEASE</version> 97 97 </dependency> 98 98 -
branches/release-0.16.x/pustefix-core/src/data/core
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/java
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-core/src/main/java (added) merged: 5423,5437,5440-5441,5446,5449-5450,5453-5456,5464,5467,5470,5483,5497
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-core/src/main/java/de
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-core/src/main/java/de (added) merged: 5423,5440-5441,5449-5450,5453-5454,5456,5464,5467,5497
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixcore/generator/annotation/IWrapper.java
r4517 r5524 35 35 String name() default ""; 36 36 Class<? extends IHandler> ihandler() default IHandler.class; 37 String beanRef() default ""; 37 38 38 39 } -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixcore/generator/iwrpgen/IWrapperAnnotationProcessor.java
r5114 r5524 56 56 import com.sun.mirror.util.SimpleDeclarationVisitor; 57 57 58 import de.schlund.pfixcore.generator.IHandler; 59 58 60 /** 59 61 * @author mleidig@schlund.de … … 198 200 iwrapperClass = getIWrapperName(classDecl); 199 201 202 Element ihandlerElem = doc.createElementNS(XMLNS_IWRP, "iwrp:ihandler"); 203 root.appendChild(ihandlerElem); 204 205 String beanRef = null; 206 String ihandlerClass = null; 207 208 AnnotationValue beanRefValue = MirrorApiUtils.getAnnotationValue(iwrpMirror, "beanRef"); 209 if(beanRefValue != null) { 210 beanRef = beanRefValue.getValue().toString(); 211 if(beanRef.equals("")) beanRef = null; 212 } 200 213 AnnotationValue ihandlerValue = MirrorApiUtils.getAnnotationValue(iwrpMirror, "ihandler"); 201 if (ihandlerValue != null) { 202 Element ihandlerElem = doc.createElementNS(XMLNS_IWRP, "iwrp:ihandler"); 203 root.appendChild(ihandlerElem); 204 ihandlerElem.setAttribute("class", ihandlerValue.getValue().toString()); 214 if(ihandlerValue != null) { 215 ihandlerClass = ihandlerValue.getValue().toString(); 216 if(ihandlerClass.equals(IHandler.class.getName())) ihandlerClass = null; 217 } 218 if(beanRef == null && ihandlerClass == null) { 219 env.getMessager().printError("Neither beanRef nor ihandler is set: " + classDecl.getQualifiedName()); 220 } else if(beanRef != null && ihandlerClass != null) { 221 env.getMessager().printError("Setting both, beanRef and ihandler, isn't allowed: " + classDecl.getQualifiedName()); 222 } else if(beanRef != null) { 223 ihandlerElem.setAttribute("bean-ref", beanRef); 224 } else if(ihandlerClass != null) { 225 ihandlerElem.setAttribute("class", ihandlerClass); 205 226 } 206 227 -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixcore/util/JarFileCache.java
r5396 r5524 1 1 package de.schlund.pfixcore.util; 2 2 import java.io.File; 3 import java.io.FileNotFoundException; 3 4 import java.io.FileOutputStream; 4 5 import java.io.IOException; … … 82 83 if(!file.exists()) { 83 84 JarEntry entry = cacheEntry.jarFile.getJarEntry(path); 84 long lastModified = entry.getTime(); 85 InputStream in = cacheEntry.jarFile.getInputStream(entry); 86 if(!file.getParentFile().exists()) file.getParentFile().mkdirs(); 87 FileOutputStream out = new FileOutputStream(file); 88 byte[] buffer = new byte[4096]; 89 int no = 0; 90 try { 91 while ((no = in.read(buffer)) != -1) 92 out.write(buffer, 0, no); 93 } finally { 94 in.close(); 95 out.close(); 85 if(entry == null) throw new FileNotFoundException("Jar entry '" + path + 86 "' not found in file '" + jarURL.toString() +"'"); 87 //Work around JDK bug: calling getJarEntry() for directory entry using name with 88 //no trailing slash returns JarEntry object keeping this name, and calling 89 //isDirectory() on this object checks for the slash and returns false. 90 //Therefor we additionally check entries with with size 0 and try to get 91 //an entry with a trailing slash 92 if(!entry.isDirectory() && entry.getSize() == 0) { 93 String dirPath = path + "/"; 94 JarEntry dirEntry = cacheEntry.jarFile.getJarEntry(dirPath); 95 if(dirEntry != null) entry = dirEntry; 96 96 } 97 file.setLastModified(lastModified); 97 if(entry.isDirectory()) { 98 file.mkdirs(); 99 } else { 100 long lastModified = entry.getTime(); 101 InputStream in = cacheEntry.jarFile.getInputStream(entry); 102 if(!file.getParentFile().exists()) file.getParentFile().mkdirs(); 103 FileOutputStream out = new FileOutputStream(file); 104 byte[] buffer = new byte[4096]; 105 int no = 0; 106 try { 107 while ((no = in.read(buffer)) != -1) 108 out.write(buffer, 0, no); 109 } finally { 110 in.close(); 111 out.close(); 112 } 113 file.setLastModified(lastModified); 114 } 98 115 } 99 116 return file; -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixcore/util/JarFileURLConnection.java
r5379 r5524 57 57 58 58 @Override 59 public int getContentLength() {59 public synchronized int getContentLength() { 60 60 int len = -1; 61 61 try { … … 82 82 JarEntry entry = getJarFile().getJarEntry(getEntryName()); 83 83 if(entry == null) throw new FileNotFoundException("JAR entry "+ getEntryName() + "not found in " + getJarFileURL()); 84 //Work around JDK bug: calling getJarEntry() for directory entry using name with 85 //no trailing slash returns JarEntry object keeping this name, and calling 86 //isDirectory() on this object checks for the slash and returns false. 87 //Therefor we additionally check entries with with size 0 and try to get 88 //an entry with a trailing slash 89 if(!entry.isDirectory() && entry.getSize() == 0) { 90 String dirPath = getEntryName() + "/"; 91 JarEntry dirEntry = getJarFile().getJarEntry(dirPath); 92 if(dirEntry != null) entry = dirEntry; 93 } 84 94 return entry; 85 95 } -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixcore/util/ModuleDescriptor.java
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-core/src/main/java/de/schlund/pfixcore/util/ModuleDescriptor.java (added) merged: 5497
r5375 r5524 52 52 private Map<String,Set<String>> moduleToResourcePaths = new HashMap<String,Set<String>>(); 53 53 private Map<String,Set<String>> moduleToResourcePathPatterns = new HashMap<String,Set<String>>(); 54 private List<String> staticPaths = new ArrayList<String>(); 54 55 55 56 private AntPathMatcher antPathMatcher = new AntPathMatcher(); … … 104 105 } 105 106 return false; 107 } 108 109 public void addStaticPath(String staticPath) { 110 staticPaths.add(staticPath); 111 } 112 113 public List<String> getStaticPaths() { 114 return staticPaths; 106 115 } 107 116 … … 144 153 } 145 154 } 155 Element staticElem = getSingleChildElement(root, "static", false); 156 if(staticElem != null) { 157 List<Element> pathElems = getChildElements(staticElem, "path"); 158 for(Element pathElem: pathElems) { 159 String path = pathElem.getTextContent().trim(); 160 if(!path.equals("")) { 161 if(!path.startsWith("/")) path = "/" + path; 162 if(path.endsWith("/")) path = path.substring(0, path.length() - 1); 163 if(path.equals("") || path.equals("/PUSTEFIX-INF")) path = "/"; 164 else if(path.startsWith("/PUSTEFIX-INF")) path = path.substring(13); 165 moduleInfo.addStaticPath(path); 166 } 167 } 168 } 146 169 } else throw new Exception("Illegal module descriptor"); 147 170 return moduleInfo; - Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixcore/util/TransformerCallback.java
r5507 r5524 38 38 import org.pustefixframework.config.contextxmlservice.ProcessActionPageRequestConfig; 39 39 import org.pustefixframework.http.BotDetector; 40 import org.pustefixframework.util.FrameworkInfo; 40 41 import org.w3c.dom.Document; 41 42 import org.w3c.dom.Element; … … 399 400 } 400 401 402 public static String getFrameworkVersion() { 403 return FrameworkInfo.getVersion(); 404 } 405 401 406 } -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixcore/util/email/EmailSender.java
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/IncludeDocumentExtension.java
r5332 r5524 34 34 import org.xml.sax.SAXException; 35 35 36 import de.schlund.pfixxml.resources.DynamicResourceInfo; 37 import de.schlund.pfixxml.resources.DynamicResourceProvider; 36 38 import de.schlund.pfixxml.resources.FileResource; 37 39 import de.schlund.pfixxml.resources.Resource; … … 68 70 69 71 private static Pattern dynamicUriPattern = Pattern.compile("dynamic://[^?#]*(\\?([^#]*))?(#.*)?"); 72 73 private static DynamicResourceProvider dynamicResourceProvider = new DynamicResourceProvider(); 70 74 71 75 //~ Methods … … 327 331 return resolvedUri.get(); 328 332 } 333 334 public static String getDynIncInfo(String part, String theme, String path, String resolvedModule, String requestedModule) { 335 try { 336 StringBuilder sb = new StringBuilder(); 337 sb.append(part).append("|").append(theme).append("|").append(path).append("|").append(resolvedModule); 338 sb.append("|").append(requestedModule).append("|"); 339 if(!path.startsWith("/")) path = "/" + path; 340 URI uri = new URI("dynamic://" + requestedModule + path + "?part=" + part); 341 DynamicResourceInfo info = new DynamicResourceInfo(); 342 dynamicResourceProvider.getResource(uri, info); 343 sb.append(info.toString()); 344 return sb.toString(); 345 } catch (Exception x) { 346 LOG.error("Error getting dynamic include information", x); 347 return "n/a"; 348 } 349 } 329 350 330 351 private static final Node errorNode(XsltContext context,String prodname) { -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/IncludeDocumentExtensionSaxon1.java
r4517 r5524 54 54 return IncludeDocumentExtension.getResolvedURI(); 55 55 } 56 57 public static String getDynIncInfo(String part, String theme, String path, String resolvedModule, String requestedModule) { 58 return IncludeDocumentExtension.getDynIncInfo(part, theme, path, resolvedModule, requestedModule); 59 } 56 60 57 61 } -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/IncludeDocumentExtensionSaxon2.java
r4517 r5524 57 57 } 58 58 59 public static String getDynIncInfo(String part, String theme, String path, String resolvedModule, String requestedModule) { 60 return IncludeDocumentExtension.getDynIncInfo(part, theme, path, resolvedModule, requestedModule); 61 } 62 59 63 } -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/config/includes/IncludesResolver.java
r5328 r5524 24 24 import java.util.List; 25 25 import java.util.Set; 26 import java.util.regex.Matcher; 27 import java.util.regex.Pattern; 26 28 27 29 import javax.xml.transform.TransformerException; … … 38 40 import com.marsching.flexiparse.util.DOMBasedNamespaceContext; 39 41 42 import de.schlund.pfixcore.util.ModuleInfo; 40 43 import de.schlund.pfixxml.resources.Resource; 41 44 import de.schlund.pfixxml.resources.ResourceUtil; … … 124 127 throw new SAXException("The attribute \"file\" must be set for the include tag!"); 125 128 } 129 List<String> includePaths = new ArrayList<String>(); 130 boolean wildcardInclude = false; 126 131 if(module != null) { 127 if(filepath.startsWith("/")) filepath = filepath.substring(1); 128 filepath = "module://" + module + "/" + filepath; 129 } 130 131 132 // Look if the same include has been performed ealier in the recursion 133 // If yes, we have a cyclic dependency 134 Set<Tupel<String, String>> list = includesList.get(); 135 if (list == null) { 136 list = new HashSet<Tupel<String, String>>(); 137 includesList.set(list); 138 } 139 if (list.contains(filepath + "#" + xpath)) { 140 throw new SAXException("Cyclic dependency in include detected: " + filepath.toString()); 141 } 142 143 Resource includeFile = ResourceUtil.getResource(filepath); 144 Document includeDocument; 145 try { 146 includeDocument = Xml.parseMutable(includeFile); 147 } catch (IOException e) { 148 throw new SAXException("I/O exception on included file " + includeFile.toString(), e); 149 } 150 151 if (!CONFIG_FRAGMENTS_NS.equals(includeDocument.getDocumentElement().getNamespaceURI()) || !CONFIG_FRAGMENTS_ROOT_TAG.equals(includeDocument.getDocumentElement().getLocalName())) { 152 throw new SAXException("File " + filepath + " seems not to be a valid configuration fragments file!"); 153 } 154 155 list.add(new Tupel<String, String>(filepath, xpath)); 156 try { 157 resolveIncludes(includeDocument); 158 } finally { 159 list.remove(new Tupel<String, String>(filepath, xpath)); 160 } 161 162 NodeList includeNodes; 163 try { 164 javax.xml.xpath.XPath xpathProc = XPathFactory.newInstance().newXPath(); 165 xpathProc.setNamespaceContext(new DOMBasedNamespaceContext(elem)); 166 includeNodes = (NodeList) xpathProc.evaluate(xpath, includeDocument, XPathConstants.NODESET); 167 } catch (XPathExpressionException e) { 168 throw new SAXException("XPath Expression invalid: " + xpath); 169 } 170 171 for (int i=0; i < includeNodes.getLength(); i++) { 172 Node node = includeNodes.item(i); 173 Node newNode = doc.importNode(node, true); 174 if(module != null) { 175 newNode.setUserData("module", module, null); 176 } 177 elem.getParentNode().insertBefore(newNode, elem); 178 } 179 elem.getParentNode().removeChild(elem); 180 181 // Trigger event 182 FileIncludeEvent ev = new FileIncludeEvent(this, includeFile); 183 for (FileIncludeEventListener listener : listeners) { 184 listener.fileIncluded(ev); 132 if(filepath.startsWith("/")) filepath = filepath.substring(1); 133 if(module.contains("*")) { 134 Pattern modulePattern = Pattern.compile(module.replaceAll("\\*", ".*")); 135 Set<String> moduleNames = ModuleInfo.getInstance().getModules(); 136 for(String moduleName: moduleNames) { 137 if(modulePattern.matcher(moduleName).matches()) { 138 includePaths.add("module://" + moduleName + "/" + filepath); 139 } 140 } 141 wildcardInclude = true; 142 } else { 143 filepath = "module://" + module + "/" + filepath; 144 includePaths.add(filepath); 145 } 146 } else { 147 includePaths.add(filepath); 148 } 149 150 for(String includePath: includePaths) { 151 152 // Look if the same include has been performed ealier in the recursion 153 // If yes, we have a cyclic dependency 154 Set<Tupel<String, String>> list = includesList.get(); 155 if (list == null) { 156 list = new HashSet<Tupel<String, String>>(); 157 includesList.set(list); 158 } 159 if (list.contains(includePath + "#" + xpath)) { 160 throw new SAXException("Cyclic dependency in include detected: " + includePath.toString()); 161 } 162 163 Resource includeFile = ResourceUtil.getResource(includePath); 164 if(includeFile.exists()) { 165 166 Document includeDocument; 167 try { 168 includeDocument = Xml.parseMutable(includeFile); 169 } catch (IOException e) { 170 throw new SAXException("I/O exception on included file " + includeFile.toString(), e); 171 } 172 173 if (!CONFIG_FRAGMENTS_NS.equals(includeDocument.getDocumentElement().getNamespaceURI()) || !CONFIG_FRAGMENTS_ROOT_TAG.equals(includeDocument.getDocumentElement().getLocalName())) { 174 throw new SAXException("File " + includePath + " seems not to be a valid configuration fragments file!"); 175 } 176 177 list.add(new Tupel<String, String>(includePath, xpath)); 178 try { 179 resolveIncludes(includeDocument); 180 } finally { 181 list.remove(new Tupel<String, String>(includePath, xpath)); 182 } 183 184 NodeList includeNodes; 185 try { 186 javax.xml.xpath.XPath xpathProc = XPathFactory.newInstance().newXPath(); 187 xpathProc.setNamespaceContext(new DOMBasedNamespaceContext(elem)); 188 includeNodes = (NodeList) xpathProc.evaluate(xpath, includeDocument, XPathConstants.NODESET); 189 } catch (XPathExpressionException e) { 190 throw new SAXException("XPath Expression invalid: " + xpath); 191 } 192 193 for (int i=0; i < includeNodes.getLength(); i++) { 194 Node node = includeNodes.item(i); 195 Node newNode = doc.importNode(node, true); 196 if(module != null) { 197 newNode.setUserData("module", module, null); 198 } 199 elem.getParentNode().insertBefore(newNode, elem); 200 } 201 elem.getParentNode().removeChild(elem); 202 203 // Trigger event 204 FileIncludeEvent ev = new FileIncludeEvent(this, includeFile); 205 for (FileIncludeEventListener listener : listeners) { 206 listener.fileIncluded(ev); 207 } 208 } else if(!wildcardInclude) { 209 throw new SAXException("Included config fragment file '" + includeFile.toString() +"' doesn't exist."); 210 } 185 211 } 186 212 } -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/resources/DynamicResourceProvider.java
r5298 r5524 50 50 51 51 public Resource getResource(URI uri) throws ResourceProviderException { 52 return getResource(uri, null); 53 } 54 55 public Resource getResource(URI uri, DynamicResourceInfo info) throws ResourceProviderException { 52 56 if(uri.getScheme()==null) 53 57 throw new ResourceProviderException("Missing URI scheme: "+uri); … … 69 73 } 70 74 if(themes==null) themes = new String[] {""}; 75 76 Resource infoRes = null; 71 77 72 78 //search in local project … … 80 86 if(resource.exists()) { 81 87 resource.setOriginatingURI(uri); 82 if(part == null) return resource; 83 if(containsPart(resource, part)) return resource; 84 } 88 if(part == null) { 89 if(info == null) return resource; 90 else { 91 if(infoRes == null) infoRes = resource; 92 info.addEntry("webapp", true, false); 93 } 94 } else if(containsPart(resource, part)) { 95 if(info == null) return resource; 96 else { 97 if(infoRes == null) infoRes = resource; 98 info.addEntry("webapp", true, true); 99 } 100 } else if(info != null) info.addEntry("webapp", true, false); 101 } else if(info != null) info.addEntry("webapp", false, false); 85 102 } catch(URISyntaxException x) { 86 103 throw new ResourceProviderException("Error while searching project resource: " + uri, x); … … 104 121 if(resource.exists()) { 105 122 resource.setOriginatingURI(uri); 106 if(part==null) return resource; 107 if(containsPart(resource, part)) return resource; 108 } 123 if(part==null) { 124 if(info == null) return resource; 125 else { 126 if(infoRes == null) infoRes = resource; 127 info.addEntry(defaultSearchModule, true, false); 128 } 129 } else if(containsPart(resource, part)) { 130 if(info == null) return resource; 131 else { 132 if(infoRes == null) infoRes = resource; 133 info.addEntry(defaultSearchModule, true,true); 134 } 135 } else if(info != null) info.addEntry(defaultSearchModule, true, false); 136 } else if(info != null) info.addEntry(defaultSearchModule, false, false); 109 137 } catch(URISyntaxException x) { 110 138 throw new ResourceProviderException("Error while searching defaultsearch module resource: " + uri, x); … … 112 140 } 113 141 } 114 115 //search in overriding modules 116 List<String> overMods = moduleInfo.getOverridingModules(module, path); 117 if(overMods.size()>1) { 118 LOG.warn("Multiple modules found which override resource '"+path+"' from module '"+module+"'."); 119 } 120 for(String theme:themes) { 121 for(String overMod:overMods) { 142 143 if(module != null) { 144 145 //search in overriding modules 146 List<String> overMods = moduleInfo.getOverridingModules(module, path); 147 if(overMods.size()>1) { 148 LOG.warn("Multiple modules found which override resource '"+path+"' from module '"+module+"'."); 149 } 150 for(String theme:themes) { 151 for(String overMod:overMods) { 152 try { 153 String uriPath = uri.getPath(); 154 uriPath = uriPath.replace("THEME", theme); 155 URI modUri = new URI("module://" + overMod + uriPath); 156 if(LOG.isDebugEnabled()) LOG.debug("trying "+modUri.toString()); 157 Resource resource = ResourceUtil.getResource(modUri); 158 if(resource.exists()) { 159 resource.setOriginatingURI(uri); 160 if(part==null) { 161 if(info == null) return resource; 162 else { 163 if(infoRes == null) infoRes = resource; 164 info.addEntry(overMod, true, false); 165 } 166 } else if(containsPart(resource, part)) { 167 if(info == null) return resource; 168 else { 169 if(infoRes == null) infoRes = resource; 170 info.addEntry(overMod, true, true); 171 } 172 } else if(info != null) info.addEntry(overMod, true, false); 173 } else if(info != null) info.addEntry(overMod, false, false); 174 } catch(URISyntaxException x) { 175 throw new ResourceProviderException("Error while searching overrided module resource: " + uri, x); 176 } 177 } 178 } 179 180 //use resource from specified module 181 for(String theme:themes) { 122 182 try { 123 183 String uriPath = uri.getPath(); 124 184 uriPath = uriPath.replace("THEME", theme); 125 URI modUri = new URI("module://" + overMod+ uriPath);185 URI modUri = new URI("module://" + module + uriPath); 126 186 if(LOG.isDebugEnabled()) LOG.debug("trying "+modUri.toString()); 127 187 Resource resource = ResourceUtil.getResource(modUri); 128 188 if(resource.exists()) { 129 189 resource.setOriginatingURI(uri); 130 if(part==null) return resource; 131 if(containsPart(resource, part)) return resource; 132 } 190 if(info == null) return resource; 191 else { 192 if(infoRes == null) infoRes = resource; 193 if(part != null && containsPart(resource, part)) info.addEntry(module, true, true); 194 else info.addEntry(module, true, false); 195 } 196 } else if(info != null) info.addEntry(module, false, false); 133 197 } catch(URISyntaxException x) { 134 throw new ResourceProviderException("Error while searching overridedmodule resource: " + uri, x);198 throw new ResourceProviderException("Error while getting module resource: " + uri, x); 135 199 } 136 200 } 137 } 138 139 //use resource from specified module 140 for(String theme:themes) { 141 try { 142 String uriPath = uri.getPath(); 143 uriPath = uriPath.replace("THEME", theme); 144 URI modUri = new URI("module://" + module + uriPath); 145 if(LOG.isDebugEnabled()) LOG.debug("trying "+modUri.toString()); 146 Resource resource = ResourceUtil.getResource(modUri); 147 if(resource.exists()) { 148 resource.setOriginatingURI(uri); 149 return resource; 150 } 151 } catch(URISyntaxException x) { 152 throw new ResourceProviderException("Error while getting module resource: " + uri, x); 153 } 154 } 201 202 } 203 204 if(infoRes != null) return infoRes; 155 205 156 206 //Return non-existing project resource if search failed -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/resources/ModuleResource.java
r5355 r5524 85 85 86 86 public boolean isFile() { 87 //TODO: support directory entries 88 return true; 87 if(url == null) return false; 88 try { 89 JarURLConnection con = getConnection(); 90 JarEntry entry = con.getJarEntry(); 91 if(entry == null) return true; //it's a jar file 92 return !entry.isDirectory(); 93 } catch(IOException x) { 94 return false; 95 } 89 96 } 90 97 … … 105 112 JarEntry entry = con.getJarEntry(); 106 113 if(entry != null) { 107 return con.getJarEntry().getSize();114 return entry.getSize(); 108 115 } 109 116 } catch(FileNotFoundException x) { -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/resources/ResourceUtil.java
r4754 r5524 83 83 String scheme = uri.getScheme(); 84 84 if (scheme == null || scheme.equals("")) { 85 throw new IllegalArgumentException("Cannot handle URIs without a scheme ");85 throw new IllegalArgumentException("Cannot handle URIs without a scheme: "+uri); 86 86 } 87 87 String path = uri.getPath(); -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/serverutil/SessionAdmin.java
r5041 r5524 235 235 } 236 236 237 public void invalidateSessions() throws IOException { 238 synchronized(sessioninfo) { 239 Iterator<SessionInfoStruct> infos = sessioninfo.values().iterator(); 240 while(infos.hasNext()) { 241 infos.next().getSession().invalidate(); 242 } 243 } 244 } 245 237 246 public HttpSession getSession(String id) throws IOException { 238 247 SessionInfoStruct info = getInfo(id); -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/serverutil/SessionAdminMBean.java
r4517 r5524 26 26 27 27 public void invalidateSession(String id) throws IOException; 28 public void invalidateSessions() throws IOException; 28 29 public int getSessionNumber(); 29 30 -
branches/release-0.16.x/pustefix-core/src/main/java/de/schlund/pfixxml/util/SimpleResolver.java
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/java/org
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-core/src/main/java/org (added) merged: 5437,5440-5441,5446,5449-5450,5454-5455,5464,5470,5483,5497
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/config/contextxmlservice/parser
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-core/src/main/java/org/pustefixframework/config/contextxmlservice/parser (added) merged: 5470
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/config/contextxmlservice/parser/PageRequestOutputResourceParsingHandler.java
r4512 r5524 52 52 if (className.length() == 0 && beanRef.length() == 0) { 53 53 throw new ParserException("Either attribute 'class' or attribute 'bean-ref' required."); 54 } 55 if (className.length() > 0) { 54 } else if (className.length() > 0 && beanRef.length() > 0) { 55 throw new ParserException("Only one of the attributes 'class' or 'bean-ref' is allowed at a 'resource' element: " + 56 "class='" + className + "' bean-ref='" + beanRef +"'"); 57 } else if (className.length() > 0) { 56 58 Class<?> clazz; 57 59 try { -
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/config/generic/PropertyFileReader.java
r5404 r5524 33 33 34 34 import de.schlund.pfixxml.config.EnvironmentProperties; 35 import de.schlund.pfixxml.config.GlobalConfig; 35 36 import de.schlund.pfixxml.resources.FileResource; 36 37 … … 61 62 62 63 public static void read(InputSource in, Properties properties) throws ParserException { 63 64 PropertiesBasedCustomizationInfo customizationInfo = new PropertiesBasedCustomizationInfo(EnvironmentProperties.getProperties()); 64 Properties cusProps = new Properties(EnvironmentProperties.getProperties()); 65 if(GlobalConfig.getDocroot() != null) { 66 cusProps.setProperty("docroot", GlobalConfig.getDocroot()); 67 } 68 PropertiesBasedCustomizationInfo customizationInfo = new PropertiesBasedCustomizationInfo(cusProps); 65 69 ClasspathConfiguredParser parser = new ClasspathConfiguredParser("META-INF/org/pustefixframework/config/generic/properties-config.xml"); 66 70 -
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/config/project/parser/DocrootRequestHandlerParsingHandler.java
r5421 r5524 19 19 package org.pustefixframework.config.project.parser; 20 20 21 import java.util.ArrayList; 21 import java.util.List; 22 import java.util.Set; 22 23 23 24 import org.pustefixframework.config.Constants; 25 import org.pustefixframework.config.generic.ParsingUtils; 26 import org.pustefixframework.config.project.StaticPathInfo; 24 27 import org.pustefixframework.http.DocrootRequestHandler; 25 28 import org.springframework.beans.factory.config.BeanDefinitionHolder; … … 28 31 import org.w3c.dom.NodeList; 29 32 33 import com.marsching.flexiparse.configuration.RunOrder; 30 34 import com.marsching.flexiparse.parser.HandlerContext; 31 35 import com.marsching.flexiparse.parser.ParsingHandler; 32 36 import com.marsching.flexiparse.parser.exception.ParserException; 33 37 38 import de.schlund.pfixcore.util.ModuleDescriptor; 39 import de.schlund.pfixcore.util.ModuleInfo; 34 40 import de.schlund.pfixxml.config.EnvironmentProperties; 35 41 … … 37 43 38 44 public void handleNode(HandlerContext context) throws ParserException { 39 Element applicationElement = (Element) context.getNode();40 45 41 String defaultPath = null; 42 NodeList defaultPathList = applicationElement.getElementsByTagNameNS(Constants.NS_PROJECT, "default-path"); 43 Element defaultPathElement = (Element) defaultPathList.item(0); 44 if(defaultPathElement != null) defaultPath = defaultPathElement.getTextContent().trim(); 46 if(context.getRunOrder() == RunOrder.START) { 47 48 Element applicationElement = (Element) context.getNode(); 49 50 String defaultPath = null; 51 NodeList defaultPathList = applicationElement.getElementsByTagNameNS(Constants.NS_PROJECT, "default-path"); 52 Element defaultPathElement = (Element) defaultPathList.item(0); 53 if(defaultPathElement != null) defaultPath = defaultPathElement.getTextContent().trim(); 45 54 46 NodeList basePathList = applicationElement.getElementsByTagNameNS(Constants.NS_PROJECT, "docroot-path"); 47 if (basePathList.getLength() != 1) { 48 throw new ParserException("Found " + basePathList.getLength() + " <docroot-path> elements but expected one."); 49 } 50 Element basePathElement = (Element)basePathList.item(0); 51 String basePath = basePathElement.getTextContent(); 52 53 ArrayList<String> paths = new ArrayList<String>(); 54 55 //Add pre-defined static paths 56 paths.add("modules/pustefix-core/img"); 57 paths.add("modules/pustefix-core/script"); 58 paths.add("modules/pustefix-webservices-jaxws/script"); 59 paths.add("modules/pustefix-webservices-jsonws/script"); 60 paths.add("wsscript"); 61 62 NodeList staticList = applicationElement.getElementsByTagNameNS(Constants.NS_PROJECT, "static"); 63 for (int i = 0; i < staticList.getLength(); i++) { 64 Element staticElement = (Element) staticList.item(i); 65 NodeList pathList = staticElement.getElementsByTagNameNS(Constants.NS_PROJECT, "path"); 66 for (int j = 0; j < pathList.getLength(); j++) { 67 Element pathElement = (Element) pathList.item(j); 68 String path = pathElement.getTextContent(); 69 if (!paths.contains(path)) { 70 paths.add(path); 55 NodeList basePathList = applicationElement.getElementsByTagNameNS(Constants.NS_PROJECT, "docroot-path"); 56 if (basePathList.getLength() != 1) { 57 throw new ParserException("Found " + basePathList.getLength() + " <docroot-path> elements but expected one."); 58 } 59 Element basePathElement = (Element)basePathList.item(0); 60 String basePath = basePathElement.getTextContent(); 61 62 StaticPathInfo staticPathInfo = new StaticPathInfo(); 63 //Add pre-defined static paths 64 staticPathInfo.addStaticPath("modules/pustefix-core/img"); 65 staticPathInfo.addStaticPath("modules/pustefix-core/script"); 66 staticPathInfo.addStaticPath("modules/pustefix-webservices-jaxws/script"); 67 staticPathInfo.addStaticPath("modules/pustefix-webservices-jsonws/script"); 68 staticPathInfo.addStaticPath("wsscript"); 69 70 Set<String> moduleNames = ModuleInfo.getInstance().getModules(); 71 for(String moduleName: moduleNames) { 72 ModuleDescriptor moduleDesc = ModuleInfo.getInstance().getModuleDescriptor(moduleName); 73 List<String> paths = moduleDesc.getStaticPaths(); 74 for(String path: paths) { 75 staticPathInfo.addStaticPath("modules/" + moduleName + path); 71 76 } 72 77 } 78 79 staticPathInfo.setBasePath(basePath); 80 staticPathInfo.setDefaultPath(defaultPath); 81 82 context.getObjectTreeElement().addObject(staticPathInfo); 83 84 } else { 85 86 StaticPathInfo staticPathInfo = ParsingUtils.getSingleObject(StaticPathInfo.class, context); 87 88 BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(DocrootRequestHandler.class); 89 beanBuilder.setScope("singleton"); 90 beanBuilder.addPropertyValue("base", staticPathInfo.getBasePath()); 91 if(staticPathInfo.getDefaultPath() != null && !staticPathInfo.getDefaultPath().equals("")) beanBuilder.addPropertyValue("defaultPath", staticPathInfo.getDefaultPath()); 92 beanBuilder.addPropertyValue("passthroughPaths", staticPathInfo.getStaticPaths()); 93 beanBuilder.addPropertyValue("mode", EnvironmentProperties.getProperties().getProperty("mode")); 94 95 context.getObjectTreeElement().addObject(new BeanDefinitionHolder(beanBuilder.getBeanDefinition(), "org.pustefixframework.http.DocrootRequestHandler")); 96 73 97 } 74 75 BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(DocrootRequestHandler.class);76 beanBuilder.setScope("singleton");77 beanBuilder.addPropertyValue("base", basePath);78 if(defaultPath != null && !defaultPath.equals("")) beanBuilder.addPropertyValue("defaultPath", defaultPath);79 beanBuilder.addPropertyValue("passthroughPaths", paths);80 beanBuilder.addPropertyValue("mode", EnvironmentProperties.getProperties().getProperty("mode"));81 82 context.getObjectTreeElement().addObject(new BeanDefinitionHolder(beanBuilder.getBeanDefinition(), "org.pustefixframework.http.DocrootRequestHandler"));83 98 } 84 99 -
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/config/project/parser/PustefixContextXMLRequestHandlerParsingHandler.java
r5507 r5524 28 28 import javax.xml.parsers.ParserConfigurationException; 29 29 30 import org.pustefixframework.admin.mbeans.WebappAdmin;31 30 import org.pustefixframework.config.Constants; 32 31 import org.pustefixframework.config.contextxmlservice.ContextXMLServletConfig; … … 40 39 import org.pustefixframework.config.project.XMLGeneratorInfo; 41 40 import org.pustefixframework.http.PustefixContextXMLRequestHandler; 41 import org.pustefixframework.http.PustefixInternalsRequestHandler; 42 42 import org.springframework.beans.factory.BeanDefinitionStoreException; 43 43 import org.springframework.beans.factory.config.BeanDefinition; … … 185 185 beanBuilder.addPropertyValue("testRecording", new RuntimeBeanReference(TestRecording.class.getName())); 186 186 } 187 beanBuilder.addPropertyValue("webappAdmin", new RuntimeBeanReference(WebappAdmin.class.getName()));188 187 beanBuilder.addPropertyValue("editorLocation", editorLocation.getLocation()); 189 188 beanBuilder.addPropertyValue("checkModtime", info.getCheckModtime()); … … 205 204 context.getObjectTreeElement().addObject(beanHolder); 206 205 206 beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(PustefixInternalsRequestHandler.class); 207 beanBuilder.setScope("singleton"); 208 beanBuilder.addPropertyValue("sessionAdmin", new RuntimeBeanReference(SessionAdmin.class.getName())); 209 beanDefinition = beanBuilder.getBeanDefinition(); 210 beanHolder = new BeanDefinitionHolder(beanDefinition, PustefixInternalsRequestHandler.class.getName()); 211 context.getObjectTreeElement().addObject(beanHolder); 212 207 213 } 208 214 -
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/http/AbstractPustefixRequestHandler.java
r5507 r5524 36 36 37 37 import org.apache.log4j.Logger; 38 import org.pustefixframework.admin.mbeans.WebappAdmin;39 38 import org.pustefixframework.config.contextxmlservice.ServletManagerConfig; 40 39 import org.pustefixframework.container.spring.http.UriProvidingHttpRequestHandler; … … 77 76 protected String handlerURI; 78 77 private SessionAdmin sessionAdmin; 79 private WebappAdmin webappAdmin;80 78 private ExceptionProcessingConfiguration exceptionProcessingConfig; 81 79 protected SessionTrackingStrategy sessionTrackingStrategy; … … 115 113 116 114 public void handleRequest(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 117 118 if(webappAdmin!=null) webappAdmin.refreshIfTriggered(); 119 115 120 116 req.setCharacterEncoding(servletEncoding); 121 117 res.setCharacterEncoding(servletEncoding); … … 333 329 } 334 330 335 public void setWebappAdmin(WebappAdmin webappAdmin) {336 this.webappAdmin = webappAdmin;337 }338 339 331 public void setExceptionProcessingConfiguration(ExceptionProcessingConfiguration exceptionProcessingConfig) { 340 332 this.exceptionProcessingConfig = exceptionProcessingConfig; -
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/http/DocrootRequestHandler.java
r5418 r5524 89 89 public void handleRequest(HttpServletRequest req, HttpServletResponse res) 90 90 throws ServletException, IOException { 91 91 92 92 String path = req.getPathInfo(); 93 93 94 94 // Handle default (root) request 95 95 if(path == null || path.length() == 0 || (path.equals("/") && !defaultpath.equals("/"))) { 96 String redirect = req.getContextPath() + defaultpath; 97 if(req.getQueryString() != null) redirect += "?" + req.getQueryString(); 98 res.sendRedirect(redirect); 96 StringBuilder sb = new StringBuilder(); 97 sb.append(req.getScheme()).append("://").append(getServerName(req)); 98 if(!(req.getServerPort() == 80 || req.getServerPort() == 443)) sb.append(":" + req.getServerPort()); 99 sb.append(req.getContextPath()).append(defaultpath); 100 if(req.getQueryString() != null && !req.getQueryString().equals("")) sb.append("?" + req.getQueryString()); 101 res.sendRedirect(sb.toString()); 99 102 return; 100 103 } … … 112 115 } 113 116 114 InputStream in = null; 115 long contentLength = -1; 116 long lastModified = -1; 117 118 try { 119 120 if (path.startsWith("/")) { 121 path = path.substring(1); 122 } 123 124 if (passthroughPaths != null) { 125 for (String prefix : this.passthroughPaths) { 126 if (path.startsWith(prefix)) { 127 Resource resource = null; 128 if(path.startsWith("modules/") && !extractedPaths.contains(prefix)) { 129 String moduleUri = "module://" + path.substring(8); 130 resource = ResourceUtil.getResource(moduleUri); 131 } else { 132 resource = ResourceUtil.getFileResourceFromDocroot(path); 133 } 134 if(resource.exists()) { 135 contentLength = resource.length(); 136 lastModified = resource.lastModified(); 137 in = resource.getInputStream(); 138 break; 139 } 117 Resource inputResource = null; 118 if (path.startsWith("/")) { 119 path = path.substring(1); 120 } 121 if (passthroughPaths != null) { 122 for (String prefix : this.passthroughPaths) { 123 if (path.startsWith(prefix)) { 124 Resource resource = null; 125 if(path.startsWith("modules/") && !extractedPaths.contains(prefix)) { 126 String moduleUri = "module://" + path.substring(8); 127 resource = ResourceUtil.getResource(moduleUri); 128 } else { 129 resource = ResourceUtil.getFileResourceFromDocroot(path); 140 130 } 141 }142 if (in == null) {143 FileResource baseResource = ResourceUtil.getFileResource(base);144 FileResource resource = ResourceUtil.getFileResource(baseResource, path);145 contentLength = resource.length();146 lastModified = resource.lastModified();147 in = resource.getInputStream();148 }149 }150 151 } catch(IOException x) {152 LOG.warn("Resource can't be read: " + path, x);153 //send 'not found' below154 } 155 156 if(in == null) {131 if(resource.exists()) { 132 inputResource = resource; 133 break; 134 } 135 } 136 } 137 if (inputResource == null) { 138 FileResource baseResource = ResourceUtil.getFileResource(base); 139 FileResource resource = ResourceUtil.getFileResource(baseResource, path); 140 if(resource.exists()) { 141 inputResource = resource; 142 } 143 } 144 } 145 146 if(inputResource == null) { 157 147 res.sendError(HttpServletResponse.SC_NOT_FOUND, path); 158 148 if(LOG.isDebugEnabled()) { … … 161 151 return; 162 152 } 153 154 if(!inputResource.isFile()) { 155 res.sendError(HttpServletResponse.SC_FORBIDDEN, path); 156 if(LOG.isDebugEnabled()) { 157 LOG.debug("Resource isn't a normal file -> send 'forbidden': " + path); 158 } 159 return; 160 } 161 162 long contentLength = inputResource.length(); 163 long lastModified = inputResource.lastModified(); 163 164 164 165 String reqETag = req.getHeader("If-None-Match"); … … 174 175 } 175 176 } 176 177 177 178 long reqMod = req.getDateHeader("If-Modified-Since"); 178 179 if(reqMod != -1) { … … 209 210 210 211 OutputStream out = new BufferedOutputStream(res.getOutputStream()); 211 212 InputStream in = inputResource.getInputStream(); 212 213 int bytes_read; 213 214 byte[] buffer = new byte[8]; … … 246 247 } 247 248 249 public static String getServerName(HttpServletRequest req) { 250 String forward = req.getHeader("X-Forwarded-Server"); 251 if (forward != null && !forward.equals("")) { 252 return forward; 253 } else { 254 return req.getServerName(); 255 } 256 } 257 258 248 259 } -
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/http/dereferer/DerefRequestHandler.java
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/http/internal/PustefixInit.java
r5405 r5524 23 23 import java.io.FileNotFoundException; 24 24 import java.io.IOException; 25 import java.lang.management.ManagementFactory; 25 26 import java.util.Enumeration; 26 27 import java.util.Properties; 27 28 29 import javax.management.MBeanServer; 30 import javax.management.ObjectName; 28 31 import javax.servlet.ServletContext; 29 32 import javax.xml.parsers.DocumentBuilder; … … 42 45 import org.apache.log4j.Logger; 43 46 import org.apache.log4j.xml.DOMConfigurator; 47 import org.pustefixframework.admin.mbeans.Admin; 44 48 import org.w3c.dom.Document; 45 49 import org.xml.sax.EntityResolver; … … 165 169 configureLogging(properties, servletContext); 166 170 LOG.debug(">>>> LOG4J Init OK <<<<"); 171 172 initAdminMBean(); 167 173 168 174 initDone = true; … … 272 278 } 273 279 280 281 private static void initAdminMBean() { 282 String mode = EnvironmentProperties.getProperties().getProperty("mode"); 283 if(!mode.equalsIgnoreCase("prod")) { 284 try { 285 String mletClass = "javax.management.loading.MLet"; 286 ObjectName mletName = new ObjectName(Admin.JMX_NAME + ",subtype=MLet"); 287 MBeanServer server = ManagementFactory.getPlatformMBeanServer(); 288 if(!server.isRegistered(mletName)) { 289 server.createMBean(mletClass, mletName); 290 LOG.debug("Created AdminMlet."); 291 Object mletParams[] = {PustefixInit.class.getProtectionDomain().getCodeSource().getLocation()}; 292 String mletSignature[] = {"java.net.URL"}; 293 server.invoke(mletName, "addURL", mletParams, mletSignature); 294 String mbeanClass = "org.pustefixframework.admin.mbeans.Admin"; 295 ObjectName mbeanName = new ObjectName(Admin.JMX_NAME); 296 if(!server.isRegistered(mbeanName)) { 297 server.createMBean(mbeanClass, mbeanName, mletName); 298 LOG.debug("Created Admin mbean."); 299 } else LOG.debug("Already found a registered Admin mbean."); 300 } else LOG.debug("Already found a registered AdminMLet."); 301 } catch(Exception x) { 302 LOG.error("Can't register Admin MBean", x); 303 } 304 } 305 } 306 274 307 } -
branches/release-0.16.x/pustefix-core/src/main/java/org/pustefixframework/util/javascript/internal/YUICompressorAdapter.java
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-core/src/main/resources (added) merged: 5440-5441,5445-5446,5449-5450,5454,5457,5469,5500
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-core/src/main/resources/META-INF
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-core/src/main/resources/META-INF (added) merged: 5446,5454
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-core/src/main/resources/META-INF/org/pustefixframework/config/context-xml-service/parser/context-xml-service-config.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources/META-INF/org/pustefixframework/config/project/parser/project-config.xml
r5496 r5524 19 19 20 20 <!-- Creates request handler for static resources --> 21 <handler class="org.pustefixframework.config.project.parser.DocrootRequestHandlerParsingHandler" >21 <handler class="org.pustefixframework.config.project.parser.DocrootRequestHandlerParsingHandler" run-order="both"> 22 22 <match>/p:project-config/p:application</match> 23 </handler> 24 25 <handler class="org.pustefixframework.config.project.parser.StaticPathParsingHandler"> 26 <match>/p:project-config/p:application/p:static//p:path</match> 23 27 </handler> 24 28 … … 44 48 <handler class="org.pustefixframework.config.project.parser.SessionAdminParsingHandler"> 45 49 <match>/p:project-config/p:application</match> 46 </handler>47 48 <!-- Adds WebappAdmin bean -->49 <handler class="org.pustefixframework.config.project.parser.WebappAdminParsingHandler">50 <match>/p:project-config//p:application</match>51 50 </handler> 52 51 … … 131 130 <match>/p:project-config/p:editor/p:choose/p:when</match> 132 131 <match>/p:project-config/p:properties/p:choose/p:when</match> 132 <match>/p:project-config/p:application/p:static/p:choose/p:when</match> 133 133 </handler> 134 134 … … 140 140 <match>/p:project-config/p:editor/p:choose/p:otherwise</match> 141 141 <match>/p:project-config/p:properties/p:choose/p:otherwise</match> 142 <match>/p:project-config/p:application/p:static/p:choose/p:otherwise</match> 142 143 </handler> 143 144 -
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/dyntxt
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/schema/context-xml-service-config.xsd
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-core/src/main/resources/PUSTEFIX-INF/schema/context-xml-service-config.xsd (added) merged: 5469
r5375 r5524 720 720 <xs:attribute name="refid" type="xs:NCName" use="optional"></xs:attribute> 721 721 <xs:attribute name="xpath" type="xs:string" use="optional"></xs:attribute> 722 <xs:attribute name="module" type="xs:string" use="optional"></xs:attribute> 722 723 </xs:complexType> 723 724 - Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/schema/module-descriptor.xsd
r5116 r5524 11 11 <xs:complexType name="moduleDescriptorType"> 12 12 <xs:sequence> 13 <xs:element name="module-name" type="md:moduleNameType"></xs:element> 14 <xs:element name="resources" type="md:resourcesType" minOccurs="0"></xs:element> 13 <xs:element name="module-name" type="md:moduleNameType"/> 14 <xs:element name="resources" type="md:resourcesType" minOccurs="0"/> 15 <xs:element name="static" type="md:staticType" minOccurs="0"/> 16 <xs:element name="override-modules" type="md:overrideType" minOccurs="0"/> 15 17 </xs:sequence> 16 18 </xs:complexType> … … 29 31 </xs:complexType> 30 32 33 <xs:complexType name="staticType"> 34 <xs:sequence> 35 <xs:element name="path" type="xs:string" maxOccurs="unbounded"/> 36 </xs:sequence> 37 </xs:complexType> 38 39 <xs:complexType name="overrideType"> 40 <xs:sequence> 41 <xs:element name="module"> 42 <xs:complexType> 43 <xs:sequence> 44 <xs:element name="resource" maxOccurs="unbounded"> 45 <xs:complexType> 46 <xs:attribute name="path" type="xs:string"/> 47 </xs:complexType> 48 </xs:element> 49 </xs:sequence> 50 <xs:attribute name="name" type="xs:string"/> 51 </xs:complexType> 52 </xs:element> 53 </xs:sequence> 54 </xs:complexType> 55 31 56 <xs:complexType name="resourceMappingType"> 32 57 <xs:attribute name="srcpath" use="required"></xs:attribute> -
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/script/httpRequest.js
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/xsl
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-core/src/main/resources/PUSTEFIX-INF/xsl (added) merged: 5440-5441,5446,5449-5450,5457
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/forminput.xsl
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/functions.xsl
r5512 r5524 110 110 </func:function> 111 111 112 <func:function name="pfx:getFrameworkVersion"> 113 <func:result select="callback:getFrameworkVersion()"/> 114 </func:function> 115 112 116 </xsl:stylesheet> -
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/include.xsl
r5436 r5524 257 257 <xsl:when test="not($__target_key = '__NONE__') and $prohibitEdit = 'no'"> 258 258 <ixsl:if test="$__editmode='admin'"> 259 < img border="0" alt="[" src="{{$__contextpath}}/modules/pustefix-core/img/edit_start.gif"/>259 <span class="pfx_inc_start"/> 260 260 </ixsl:if> 261 261 </xsl:when> 262 262 <xsl:when test="$__target_key = '__NONE__' and $__editmode = 'admin'"> 263 < img border="0" alt="[" src="{$__contextpath}/modules/pustefix-core/img/edit_start.gif"/>264 </xsl:when> 265 </xsl:choose> 263 <span class="pfx_inc_start"/> 264 </xsl:when> 265 </xsl:choose> 266 266 <!-- --> 267 267 <xsl:variable name="used_theme"> … … 300 300 <xsl:call-template name="pfx:include_internal_render_edit"> 301 301 <xsl:with-param name="part" select="$part"/> 302 <xsl:with-param name=" realpath" select="$realpath"/>303 <xsl:with-param name=" used_theme" select="$used_theme"/>302 <xsl:with-param name="theme" select="$used_theme"/> 303 <xsl:with-param name="path" select="$realpath"/> 304 304 <xsl:with-param name="resolved_uri" select="$__resolveduri"/> 305 <xsl:with-param name="search" select="$search"/> 306 <xsl:with-param name="module" select="$module_name"/> 305 307 </xsl:call-template> 306 308 </xsl:when> 307 309 <xsl:when test="$incnodes/parent::part/@editable='false'"> 308 <xsl:call-template name="pfx:include_internal_render_ noedit">310 <xsl:call-template name="pfx:include_internal_render_edit"> 309 311 <xsl:with-param name="part" select="$part"/> 312 <xsl:with-param name="theme" select="$used_theme"/> 313 <xsl:with-param name="path" select="$realpath"/> 310 314 <xsl:with-param name="resolved_uri" select="$__resolveduri"/> 315 <xsl:with-param name="search" select="$search"/> 316 <xsl:with-param name="module" select="$module_name"/> 317 <xsl:with-param name="editable">false</xsl:with-param> 311 318 </xsl:call-template> 312 319 </xsl:when> … … 316 323 <xsl:call-template name="pfx:include_internal_render_edit"> 317 324 <xsl:with-param name="part" select="$part"/> 318 <xsl:with-param name=" realpath" select="$realpath"/>319 <xsl:with-param name=" used_theme" select="$used_theme"/>325 <xsl:with-param name="theme" select="$used_theme"/> 326 <xsl:with-param name="path" select="$realpath"/> 320 327 <xsl:with-param name="resolved_uri" select="$__resolveduri"/> 328 <xsl:with-param name="search" select="$search"/> 329 <xsl:with-param name="module" select="$module_name"/> 321 330 </xsl:call-template> 322 331 </ixsl:when> 323 332 <ixsl:otherwise> 324 <xsl:call-template name="pfx:include_internal_render_ noedit">333 <xsl:call-template name="pfx:include_internal_render_edit"> 325 334 <xsl:with-param name="part" select="$part"/> 335 <xsl:with-param name="theme" select="$used_theme"/> 336 <xsl:with-param name="path" select="$realpath"/> 326 337 <xsl:with-param name="resolved_uri" select="$__resolveduri"/> 338 <xsl:with-param name="search" select="$search"/> 339 <xsl:with-param name="module" select="$module_name"/> 340 <xsl:with-param name="editable">false</xsl:with-param> 327 341 </xsl:call-template> 328 342 </ixsl:otherwise> … … 335 349 <xsl:choose> 336 350 <xsl:when test="$incnodes/parent::part/@editable='true' or (not($incnodes/parent::part/@editable='false') and $__editor_include_parts_editable_by_default='true')"> 337 <xsl:call-template name="pfx:include_internal_render_edit _runtime">351 <xsl:call-template name="pfx:include_internal_render_edit"> 338 352 <xsl:with-param name="part" select="$part"/> 339 <xsl:with-param name=" realpath" select="$realpath"/>340 <xsl:with-param name=" used_theme" select="$used_theme"/>353 <xsl:with-param name="theme" select="$used_theme"/> 354 <xsl:with-param name="path" select="$realpath"/> 341 355 <xsl:with-param name="resolved_uri" select="$__resolveduri"/> 356 <xsl:with-param name="search" select="$search"/> 357 <xsl:with-param name="module" select="$module_name"/> 342 358 </xsl:call-template> 343 359 </xsl:when> 344 360 <xsl:otherwise> 345 <xsl:call-template name="pfx:include_internal_render_ noedit_runtime">361 <xsl:call-template name="pfx:include_internal_render_edit"> 346 362 <xsl:with-param name="part" select="$part"/> 363 <xsl:with-param name="theme" select="$used_theme"/> 364 <xsl:with-param name="path" select="$realpath"/> 347 365 <xsl:with-param name="resolved_uri" select="$__resolveduri"/> 366 <xsl:with-param name="search" select="$search"/> 367 <xsl:with-param name="module" select="$module_name"/> 368 <xsl:with-param name="editable">false</xsl:with-param> 348 369 </xsl:call-template> 349 370 </xsl:otherwise> … … 357 378 <xsl:template name="pfx:include_internal_render_edit"> 358 379 <xsl:param name="part"/> 359 <xsl:param name=" realpath"/>360 <xsl:param name=" used_theme"/>380 <xsl:param name="theme"/> 381 <xsl:param name="path"/> 361 382 <xsl:param name="resolved_uri"/> 362 <a href="#"> 363 <ixsl:attribute name="onclick">window.open('<ixsl:value-of select="$__editor_url"/>?__scriptedflow=selectinclude&theme=<xsl:value-of select="string($used_theme)"/>&path=<xsl:value-of select="$resolved_uri"/>&part=<xsl:value-of select="$part"/>&uri=<ixsl:value-of select="$__application_url"/>&type=include&__anchor=left_navi|<xsl:value-of select="$realpath"/>','PustefixEditor','menubar=yes,status=yes,resizable=yes');return(false);</ixsl:attribute> 364 <img border="0" src="{{$__contextpath}}/modules/pustefix-core/img/edit.gif" 365 alt="] Edit include: '{$part}' in resource '{$resolved_uri}'" 366 title="Edit include: '{$part}' in resource '{$resolved_uri}'"/> 367 </a> 368 </xsl:template> 369 370 <xsl:template name="pfx:include_internal_render_noedit"> 371 <xsl:param name="part"/> 372 <xsl:param name="resolved_uri"/> 373 <img border="0" src="{{$__contextpath}}/modules/pustefix-core/img/noedit.gif" 374 alt="] Info: '{$part}' in resource '{$resolved_uri}'" 375 title="Info: '{$part}' in resource '{$resolved_uri}'"/> 376 </xsl:template> 377 378 <xsl:template name="pfx:include_internal_render_edit_runtime"> 379 <xsl:param name="part"/> 380 <xsl:param name="realpath"/> 381 <xsl:param name="used_theme"/> 382 <xsl:param name="resolved_uri"/> 383 <a href="#"> 384 <xsl:attribute name="onClick">window.open('<xsl:value-of select="$__editor_url"/>?__scriptedflow=selectinclude&theme=<xsl:value-of select="string($used_theme)"/>&path=<xsl:value-of select="$realpath"/>&part=<xsl:value-of select="$part"/>&name=<xsl:value-of select="$product"/>&uri=<xsl:value-of select="$__application_url"/>&type=dyninclude&__anchor=left_navi|<xsl:value-of select="$realpath"/>','PustefixEditor','menubar=yes,status=yes,resizable=yes');return(false);</xsl:attribute> 385 <img border="0" src="{$__contextpath}/modules/pustefix-core/img/edit.gif" alt="] Edit include: '{$part}' in file '{$realpath}'" title="Edit include: '{$part}' in file '{$realpath}'"/> 386 </a> 387 </xsl:template> 388 389 <xsl:template name="pfx:include_internal_render_noedit_runtime"> 390 <xsl:param name="part"/> 391 <xsl:param name="resolved_uri"/> 392 <img border="0" src="{$__contextpath}/modules/pustefix-core/img/noedit.gif" alt="] Info: '{$part}' in file '{$realpath}'" title="Info: '{$part}' in file '{$realpath}'"/> 383 <xsl:param name="search"/> 384 <xsl:param name="module"/> 385 <xsl:param name="editable">true</xsl:param> 386 <xsl:variable name="resolved_module"> 387 <xsl:choose> 388 <xsl:when test="starts-with($resolved_uri,'module://')"><xsl:value-of select="substring-before(substring-after($resolved_uri,'module://'),'/')"/></xsl:when> 389 <xsl:otherwise>webapp</xsl:otherwise> 390 </xsl:choose> 391 </xsl:variable> 392 <xsl:variable name="requested_module"> 393 <xsl:choose> 394 <xsl:when test="not($module = '')"> 395 <xsl:choose> 396 <xsl:when test="$module='WEBAPP' or $module='webapp'"></xsl:when> 397 <xsl:otherwise><xsl:value-of select="$module"/></xsl:otherwise> 398 </xsl:choose> 399 </xsl:when> 400 <xsl:when test="starts-with(include:getSystemId(),'module://')"> 401 <xsl:value-of select="substring-before(substring-after(include:getSystemId(),'//'),'/')"/> 402 </xsl:when> 403 </xsl:choose> 404 </xsl:variable> 405 <xsl:variable name="classes"> 406 <xsl:choose> 407 <xsl:when test="$editable='true'">pfx_inc_end</xsl:when> 408 <xsl:otherwise>pfx_inc_end pfx_inc_ro</xsl:otherwise> 409 </xsl:choose> 410 </xsl:variable> 411 <xsl:choose> 412 <xsl:when test="$search='dynamic'"> 413 <xsl:choose> 414 <xsl:when test="$__target_key='__NONE__'"> 415 <span class="{$classes}" title="{pfx:getDynIncInfo($part,$theme,$path,$resolved_module,$requested_module)}"/> 416 </xsl:when> 417 <xsl:otherwise> 418 <span class="{$classes}" title="{{pfx:getDynIncInfo('{$part}','{$theme}','{$path}','{$resolved_module}','{$requested_module}')}}"/> 419 </xsl:otherwise> 420 </xsl:choose> 421 </xsl:when> 422 <xsl:otherwise> 423 <span class="{$classes}" title="{$part}|{$theme}|{$path}|{$resolved_module}"/> 424 </xsl:otherwise> 425 </xsl:choose> 393 426 </xsl:template> 394 427 … … 623 656 <func:result select="include:getRelativePathFromSystemId()"/> 624 657 </func:function> 658 659 <func:function name="pfx:getDynIncInfo"> 660 <xsl:param name="part"/> 661 <xsl:param name="theme"/> 662 <xsl:param name="path"/> 663 <xsl:param name="resolved_module"/> 664 <xsl:param name="requested_module"/> 665 <func:result select="include:getDynIncInfo($part, $theme, $path, $resolved_module, $requested_module)"/> 666 </func:function> 625 667 626 668 </xsl:stylesheet> -
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/master.xsl
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/utils.xsl
r5436 r5524 84 84 <img border="0" alt="Show XML" title="Show last XML tree" src="{{$__contextpath}}/modules/pustefix-core/img/show_xml.gif"/></a> 85 85 </td> 86 <td align="left"> 87 <a target="pfixcore_internals__"> 88 <ixsl:attribute name="href"><ixsl:value-of select="$__contextpath"/>/xml/pfxinternals</ixsl:attribute> 89 <img border="0" alt="Show XML" title="Show last XML tree" src="{{$__contextpath}}/modules/pustefix-core/img/show_info.gif"/></a> 90 </td> 86 91 </tr> 87 92 <tr> 88 <td nowrap="nowrap" colspan=" 2" style="font-family: Verdana,Sans; font-size: 10px; background-color: black; color: white; padding-left: 5px; padding-right: 2px;">93 <td nowrap="nowrap" colspan="3" style="font-family: Verdana,Sans; font-size: 10px; background-color: black; color: white; padding-left: 5px; padding-right: 2px;"> 89 94 P: <ixsl:value-of select="$page"/> 90 95 </td> 91 96 </tr> 92 97 <tr> 93 <td nowrap="nowrap" colspan=" 2" style="font-family: Verdana,Sans; font-size: 10px; background-color: black; color: white; padding-left: 5px; padding-right: 2px;">98 <td nowrap="nowrap" colspan="3" style="font-family: Verdana,Sans; font-size: 10px; background-color: black; color: white; padding-left: 5px; padding-right: 2px;"> 94 99 F: <ixsl:value-of select="$__root/formresult/pageflow/@name"/> 95 100 </td> … … 99 104 </xsl:when> 100 105 <xsl:otherwise> 106 <script type="text/javascript"> 107 if(!window.pfx) pfx={}; 108 if(!pfx.editor) pfx.editor={}; 109 pfx.editor.enrichSpans=function() { 110 var spans = document.getElementsByTagName("span"); 111 for(var i=0; i<spans.length; i++) { 112 if(spans[i].className == 'pfx_inc_start') { 113 spans[i].innerHTML = '<img border="0" alt="[" src="{{$__contextpath}}/modules/pustefix-core/img/edit_start.gif"/>'; 114 } else if(spans[i].className == 'pfx_inc_end' || spans[i].className == 'pfx_inc_end pfx_inc_ro') { 115 var data = spans[i].title.split('|'); 116 var partStr = 'part \'' + data[0] + '\''; 117 var pathStr = ' from resource \'' + data[2] + '\''; 118 var modStr = ''; 119 if(data[3] == 'webapp') { 120 modStr = ' within webapp'; 121 } else { 122 modStr = ' within module \'' + data[3] + '\''; 123 } 124 var dynStr = ''; 125 if(data.length > 4) { 126 dynStr = ' having searched \''+ data[5] + '\''; 127 } 128 if(spans[i].className == 'pfx_inc_end') { 129 spans[i].innerHTML = '<a href="#" onclick="pfx.editor.openEditor(\'' + spans[i].title + '\')">' + 130 '<img border="0" alt="] Edit ' + partStr + pathStr + modStr + dynStr + '" title="Edit ' + partStr + pathStr + modStr + dynStr + '" src="{{$__contextpath}}/modules/pustefix-core/img/edit.gif"/>'; 131 '</a>'; 132 } else { 133 spans[i].innerHTML = '<img border="0" alt="] This is ' + partStr + pathStr + modStr + dynStr + '" title="This is ' + partStr + pathStr + modStr + dynStr + '" src="{{$__contextpath}}/modules/pustefix-core/img/noedit.gif"/>'; 134 } 135 } 136 } 137 } 138 pfx.editor.openEditor=function(title) { 139 var data = title.split('|'); 140 var uri = ''; 141 if(data[3]=='webapp') uri = 'docroot:/' + data[2]; 142 else uri = 'module://' + data[3] + '/' + data[2]; 143 window.open('<ixsl:value-of select="$__editor_url"/>?__scriptedflow=selectinclude&' + 144 'theme=' + data[1] + '&path=' + uri + '&part=' + data[0] + '&' + 145 'uri=<ixsl:value-of select="$__application_url"/>&type=include&__anchor=left_navi|' + data[2] 146 ,'PustefixEditor','menubar=yes,status=yes,resizable=yes'); 147 return false; 148 } 149 pfx.editor.enrichSpans(); 150 </script> 101 151 <script type="text/javascript"> 102 152 var de_schlund_pfixcore_console_drag_start_x = 0; … … 226 276 <ixsl:value-of select="$__uri"/>?__xmlonly=1</ixsl:attribute> 227 277 <img border="0" alt="Show XML" title="Show last XML tree" src="{{$__contextpath}}/modules/pustefix-core/img/console_showxml.gif" style="margin-left:5px"/> 278 </a> 279 <a target="pfixcore_internals__"> 280 <ixsl:attribute name="href"><ixsl:value-of select="$__contextpath"/>/xml/pfxinternals</ixsl:attribute> 281 <img border="0" alt="Show Pustefix internals" title="Show Pustefix internals" src="{{$__contextpath}}/modules/pustefix-core/img/console_showinfo.gif" style="margin-left:5px"/> 228 282 </a> 229 283 <xsl:if test="@webserviceconsole='true'"> -
branches/release-0.16.x/pustefix-core/src/main/resources/PUSTEFIX-INF/xsl/xmlfontify.xsl
r5509 r5524 25 25 .datatable th {padding:4px;text-align:left;font-weight:normal;border-bottom: 1px solid black;} 26 26 .rowsep {border-bottom: 1px dotted #888888;} 27 table.info {padding-left: 20px;} 28 table.info th,td {text-align:left; padding:4px;} 29 table.info td {color: #666666; font-weight: normal;} 30 table.info th {color: #000000; font-weight: normal;} 27 31 </style> 28 32 </head> -
branches/release-0.16.x/pustefix-core/src/main/resources/pustefix/logging
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources/pustefix/xsl
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources/pustefix/xsl/depend.xsl
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources/pustefix/xsl/lib.xsl
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/main/resources/pustefix/xsl/log4j.xsl
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/test
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/test/java
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/test/resources/META-INF
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-core/src/test/resources/properties.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-docbook/pom.xml
r5419 r5524 144 144 <groupId>org.apache.maven.plugins</groupId> 145 145 <artifactId>maven-changes-plugin</artifactId> 146 <version>2.3</version> 146 147 <reportSets> 147 148 <reportSet> … … 154 155 <tracUser>mvnchr</tracUser> 155 156 <tracPassword>k7XvGD9i3MNz2bV4d78P</tracPassword> 156 <query>order=priority&milestone=${p om.version}</query>157 <query>order=priority&milestone=${project.version}</query> 157 158 </configuration> 158 159 </plugin> -
branches/release-0.16.x/pustefix-docbook/src/docbkx
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-docbook/src/docbkx (added) merged: 5458-5459,5467,5499
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-docbook/src/docbkx/faq/faq.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-docbook/src/docbkx/reference/advancedtopics.xml
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-docbook/src/docbkx/reference/advancedtopics.xml (added) merged: 5467
r5390 r5524 1805 1805 String name() default ""; 1806 1806 Class<? extends IHandler> ihandler() default IHandler.class; 1807 String beanRef() default ""; 1807 1808 } 1808 1809 … … 1818 1819 generated IWrapper class (without package). By default the bean name with the 1819 1820 suffix <literal>Wrapper</literal> is used (and the same package). The <literal>ihandler</literal> 1820 attribute denotes the <literal>IHandler</literal> implementation class. 1821 attribute denotes the <literal>IHandler</literal> implementation class. Alternatively you can 1822 use the <literal>beanRef</literal> attribute to reference a Spring managed IHandler bean by name. 1821 1823 </para> 1822 1824 <para> - Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-docbook/src/docbkx/reference/configuration.xml
r5406 r5524 436 436 437 437 <!-- Configuration fragements are supported as well --> 438 <config-include file=" myproject/conf/myfile.xml" section="navigation"/>438 <config-include file="conf/myfile.xml" section="navigation" module="mymodule"/> 439 439 </navigation> 440 440 … … 452 452 </global> 453 453 454 <config-include file=" myproject/conf/myfile.xml" section="targets"/>454 <config-include file="conf/myfile.xml" section="targets" module="mymodule"/> 455 455 456 456 <!-- … … 1501 1501 </pagerequest> 1502 1502 1503 <config-include file=" myproject/conf/myfile.xml" section="pagerequests"/>1503 <config-include file="conf/myfile.xml" section="pagerequests" module="mymodule"/> 1504 1504 ]]></programlisting> 1505 1505 Includes a part of a config fragments file at this location. … … 1548 1548 <td><emphasis>Optional</emphasis>. 1549 1549 Specifies the Pustefix module where the file is located (by default 1550 the file is searched in the webapp itself).</td> 1550 the file is searched in the webapp itself). You can use simple name patterns to include all 1551 or a subset of modules availabe in the classpath (e.g. <literal>"*"</literal> or <literal>"mod-*-us"</literal>).</td> 1551 1552 </tr> 1552 1553 </tbody> … … 1650 1651 page requires no authentication. 1651 1652 <programlisting language="xml"><![CDATA[ 1652 <config-include file=" myproject/conf/myfile.xml" section="directoutputpagerequests"/>1653 <config-include file="conf/myfile.xml" section="directoutputpagerequests" module="mymodule"/> 1653 1654 ]]></programlisting> 1654 1655 Includes a part of a config-fragments at this location. … … 1698 1699 <td><emphasis>Optional</emphasis>. 1699 1700 Specifies the Pustefix module where the file is located (by default 1700 the file is searched in the webapp itself).</td> 1701 the file is searched in the webapp itself). You can use simple name patterns to include all 1702 or a subset of modules availabe in the classpath (e.g. <literal>"*"</literal> or <literal>"mod-*-us"</literal>).</td> 1701 1703 </tr> 1702 1704 -
branches/release-0.16.x/pustefix-docbook/src/docbkx/reference/module-support.xml
r5390 r5524 35 35 --> 36 36 <module-name>mytest</module-name> 37 <!-- You can optionally add the attribute "unpack" with value "obsolete" to the resources 38 element, indicating that the resources shouldn't be extracted in the current or later 39 Pustefix versions, unless otherwise configured by adding <unpackObsolete>true</unpackObsolete> 40 to the pustefix-webapp-plugin configuration. 41 --> 37 42 <resources> 38 43 <!-- … … 46 51 <resource-mapping srcpath="PUSTEFIX-INF/images" targetpath="img"/> 47 52 </resources> 53 54 <!-- Here you can define which folders under PUSTEFIX-INF contain static webapp resources 55 and should be publicly available. The resources then can be accessed under the URL 56 path '/modules/[module-name]/[static-path]'. If you only want to grant access depending 57 on the application using the module, you can alternatively configure the static module 58 path in the project configuration. 59 --> 60 <static> 61 <path>css</path> 62 <path>img</path> 63 </static> 48 64 49 65 <!-- -
branches/release-0.16.x/pustefix-docbook/src/docbkx/reference/news.xml
r5407 r5524 9 9 10 10 <section xml:id="news.0_15_6.modules"> 11 <title> New module enhancements</title>11 <title>Module enhancements</title> 12 12 <para> 13 13 Introduced pre-defined special module names <literal>WEBAPP</literal> and … … 29 29 30 30 <section xml:id="news.0_15_7.modules"> 31 <title> New module enhancements</title>31 <title>Module enhancements</title> 32 32 <para> 33 33 Static web resources now can be delivered directly from modules without having to extract them to the webapp folder first … … 51 51 52 52 <section xml:id="news.0_15_11.config"> 53 <title> New configuration system enhancements</title>53 <title>Configuration system enhancements</title> 54 54 <para> 55 55 We improved the configuration customization support by making context init parameters available as environment properties … … 65 65 </section> 66 66 67 <section xml:id="news.0_15_13"> 68 <title>What's new in Pustefix 0.15.13</title> 69 70 <section xml:id="news.0_15_13.config"> 71 <title>Module/configuration enhancements</title> 72 <para> 73 Including configuration fragments from modules now can be done without having to directly specify the module names. 74 Therefor the <literal>config-include</literal> element now supports <literal>module</literal> attribute values 75 containing simple patterns, which will be matched against the names of the modules available in the classpath, 76 e.g. <literal>module="*"</literal> will include all according configuration fragments found in the classpath, 77 <literal>module="*-us"</literal> will include only fragments from modules whose name ends with <literal>-us</literal>. 78 </para> 79 <para> 80 Added support for conditional unpacking of module resources. 81 Within the module descriptor you can set the optional <literal>resources</literal> element's 82 attribute <literal>unpack</literal> to <literal>obsolete</literal>. Thus the resources won't be extracted 83 in the current or newer Pustefix versions (despite containing resource mappings). 84 If you still want that obsolete resources are extracted, you can configure the Maven <literal>pustefix-webapp-plugin</literal> 85 by adding <literal><unpackObsolete>true</unpackObsolete></literal> to its configuration. 86 This should help migrating modules and applications towards avoiding extracting resources at all, while keeping 87 backwards compatibility for modules shared between different applications (see <xref linkend="modulessupport"/>). 88 </para> 89 </section> 90 <section xml:id="news.0_15_13.tooling"> 91 <title>Tooling enhancements</title> 92 <para> 93 When hovering the closing include part delimiters displayed in edit mode, the tooltip now shows additional information for dynamic 94 includes. It prints out the complete dynamic search chain, e.g. something like 95 <literal>webapp(?) module-a(-) module-aa(+) module-ab(+)</literal>, whereas <literal>(?)</literal> means that the file doesn't 96 exist, <literal>(-)</literal> says that the file exists but doesn't contain the part, and <literal>(+)</literal> implies 97 that a file containing the part is found. 98 </para> 99 <para> 100 Introduced the Pustefix internals page. Similar to the DOM tree view this page provides some additional information useful 101 during development, e.g. environment, JVM and module information (see <xref linkend="tooling.pfxinternals"/>). 102 </para> 103 </section> 104 </section> 105 106 <section xml:id="news.0_15_14"> 107 <title>What's new in Pustefix 0.15.14</title> 108 109 <section xml:id="news.0_15_14.iwrapper"> 110 <title>IWrapper enhancements</title> 111 <para>Annotation-based IWrappers now also support assigning IHandler beans by name. Therefor the <literal>@IWrapper</literal> 112 annotation provides the new <literal>beanRef</literal> attribute (see <xref linkend="advanced.iwrapperannotations.reference"/>). 113 </para> 114 </section> 115 </section> 116 117 <section xml:id="news.0_15_17"> 118 <title>What's new in Pustefix 0.15.17</title> 119 120 <section xml:id="news.0_15_17.modules"> 121 <title>Module enhancements</title> 122 <para>Modules now can define which directories contain static resources and should be publicly available. Thus you don't have 123 to configure it in every application using the module. This configuration is done in the module deployment descriptor 124 using <literal><path/></literal> elements within the <literal><static/></literal> top-level section 125 (see <xref linkend="modulessupport"/>). 126 </para> 127 </section> 128 </section> 129 67 130 </chapter> -
branches/release-0.16.x/pustefix-docbook/src/docbkx/reference/reference.xml
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-docbook/src/docbkx/reference/reference.xml (added) merged: 5458
r5436 r5524 67 67 <xi:include href="testing.xml" /> 68 68 <xi:include href="upgrade.xml" /> 69 <xi:include href="tooling.xml" /> 69 70 <xi:include href="glossary.xml" /> 70 71 - Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-docbook/src/docbkx/reference/xslt.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-docbook/src/docbkx/tutorial/tutorial.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-docbook/src/site/resources/docbkx/css
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-docbook/src/site/resources/docbkx/images
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-docbook/src/site/resources/docbkx/images (added) merged: 5458
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-docbook/src/uml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-editor/pustefix-editor-backend/pom.xml
r5419 r5524 33 33 <groupId>org.springframework</groupId> 34 34 <artifactId>spring-webmvc</artifactId> 35 <version>3.0. 3.RELEASE</version>35 <version>3.0.5.RELEASE</version> 36 36 </dependency> 37 37 <dependency> -
branches/release-0.16.x/pustefix-editor/pustefix-editor-webui/pom.xml
r5419 r5524 58 58 <groupId>org.mortbay.jetty</groupId> 59 59 <artifactId>maven-jetty-plugin</artifactId> 60 <version>6.1.26</version> 60 61 </plugin> 61 62 </plugins> -
branches/release-0.16.x/pustefix-editor/pustefix-editor-webui/src/main/webapp/WEB-INF/web.xml
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-editor/pustefix-editor-webui/src/main/webapp/WEB-INF/web.xml (added) merged: 5424
r5057 r5524 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jee="http://java.sun.com/xml/ns/javaee"> 3 <context-param> 4 <!-- Make sure we're in mode "prod" to disable live resolving. 5 The editor has strange problem in mode "test": 6 the live mechanism causes the editor to load the application's pfixlog.xml instead of his own pfixlog.xml. 7 That fails because the jar file for unifiedlogging.Config is not part ot the editor's jar files. 8 --> 9 <param-name>mode</param-name> 10 <param-value>prod</param-value> 11 </context-param> 3 12 <!-- 4 13 <context-param> - Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-plugins/pustefix-webapp-plugin/src/main/java/org/pustefixframework/maven/plugins/Apt.java
r4517 r5524 22 22 import java.io.FileWriter; 23 23 import java.io.IOException; 24 import java.io.InputStream; 25 import java.io.InputStreamReader; 24 26 import java.io.PrintWriter; 25 27 import java.util.ArrayList; … … 119 121 builder.directory(basedir); 120 122 builder.redirectErrorStream(true); 121 int ret = builder.start().waitFor(); 122 if (ret != 0) throw new MojoExecutionException("Error while executing apt (exit value: " + ret + ")."); 123 Process process = builder.start(); 124 int ret = process.waitFor(); 125 InputStream in = process.getInputStream(); 126 StringBuilder sb = new StringBuilder(); 127 if(in != null) { 128 InputStreamReader reader = new InputStreamReader(in); 129 char[] buffer = new char[4096]; 130 int i = 0; 131 try { 132 while ((i = reader.read(buffer)) != -1) 133 sb.append(buffer, 0, i); 134 } finally { 135 in.close(); 136 } 137 } 138 if(ret == 0) { 139 log.debug(sb.toString()); 140 } else { 141 log.error(sb.toString()); 142 throw new MojoExecutionException("Error while executing apt (exit value: " + ret + ")."); 143 } 123 144 } catch (IOException e) { 124 145 throw new MojoExecutionException("Error invoking apt", e); -
branches/release-0.16.x/pustefix-plugins/pustefix-webapp-plugin/src/main/java/org/pustefixframework/maven/plugins/PustefixWebappMojo.java
r5405 r5524 29 29 import java.util.Enumeration; 30 30 import java.util.List; 31 import java.util.Map;32 import java.util.Properties;33 31 import java.util.jar.JarEntry; 34 32 import java.util.jar.JarFile; … … 78 76 */ 79 77 private String modulesdir; 78 79 /** 80 * Set if resources from modules should be unpacked even though marked as obsolete in the 81 * module descriptor. 82 * 83 * @parameter default-value=false 84 */ 85 private boolean unpackObsolete; 80 86 81 87 /** … … 180 186 } 181 187 182 private Properties getProperties() {183 Properties orig;184 Properties result;185 String key;186 187 result = new Properties();188 orig = project.getProperties();189 for (Map.Entry<Object, Object> entry: orig.entrySet()) {190 key = (String) entry.getKey();191 if (key.startsWith("pustefix.")) {192 result.setProperty(key, (String) entry.getValue());193 }194 }195 return result;196 }197 198 188 private static List<String> pathStrings(Collection<Artifact> artifacts) { 199 189 List<String> lst; … … 219 209 throw new MojoExecutionException("Mandatory attribute extractdir is not set!"); 220 210 } 221 artifacts = project.getCompileArtifacts();211 artifacts = getProjectCompileArtifacts(); 222 212 count = 0; 223 213 for (Artifact artifact : artifacts) { … … 230 220 } 231 221 return count; 222 } 223 224 @SuppressWarnings("unchecked") 225 private List<Artifact> getProjectCompileArtifacts() { 226 return (List<Artifact>)project.getCompileArtifacts(); 232 227 } 233 228 … … 347 342 return; 348 343 } 349 temp = ((Element)temp.item(0)).getElementsByTagName("resource-mapping");350 344 ArrayList<ResourceMapping> mappings = new ArrayList<ResourceMapping>(); 351 for (int i=0; i<temp.getLength(); i++) { 352 Element el = (Element) temp.item(i); 353 String srcpath = el.getAttribute("srcpath"); 354 if (srcpath == null) { 355 throw new TransformerException("Mandatory attribute srcpath not set on resource-mapping attribute"); 345 String unpackValue = ((Element)temp.item(0)).getAttribute("unpack").trim(); 346 if(!unpackValue.equalsIgnoreCase("obsolete") || unpackObsolete) { 347 temp = ((Element)temp.item(0)).getElementsByTagName("resource-mapping"); 348 for (int i=0; i<temp.getLength(); i++) { 349 Element el = (Element) temp.item(i); 350 String srcpath = el.getAttribute("srcpath"); 351 if (srcpath == null) { 352 throw new TransformerException("Mandatory attribute srcpath not set on resource-mapping attribute"); 353 } 354 if (srcpath.startsWith("/")) { 355 srcpath = srcpath.substring(1); 356 } 357 if (srcpath.endsWith("/")) { 358 srcpath = srcpath.substring(0, srcpath.length()-1); 359 } 360 String targetpath = el.getAttribute("targetpath"); 361 if (targetpath == null) { 362 targetpath = ""; 363 } 364 if (targetpath.startsWith("/")) { 365 targetpath = targetpath.substring(1); 366 } 367 if (targetpath.endsWith("/")) { 368 targetpath = targetpath.substring(0, targetpath.length()-1); 369 } 370 ResourceMapping rm = new ResourceMapping(); 371 rm.sourcePath = srcpath; 372 rm.targetPath = targetpath; 373 mappings.add(rm); 356 374 } 357 if (srcpath.startsWith("/")) {358 srcpath = srcpath.substring(1);359 }360 if (srcpath.endsWith("/")) {361 srcpath = srcpath.substring(0, srcpath.length()-1);362 }363 String targetpath = el.getAttribute("targetpath");364 if (targetpath == null) {365 targetpath = "";366 }367 if (targetpath.startsWith("/")) {368 targetpath = targetpath.substring(1);369 }370 if (targetpath.endsWith("/")) {371 targetpath = targetpath.substring(0, targetpath.length()-1);372 }373 ResourceMapping rm = new ResourceMapping();374 rm.sourcePath = srcpath;375 rm.targetPath = targetpath;376 mappings.add(rm);377 375 } 378 376 this.mappings = mappings; -
branches/release-0.16.x/pustefix-samples/moduletest/src/main/webapp/WEB-INF/project.xml
r5144 r5524 32 32 <application> 33 33 34 <docroot-path> htdocs</docroot-path>34 <docroot-path>docroot:/htdocs</docroot-path> 35 35 <default-path>/xml/config</default-path> 36 36 -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/pom.xml
r5419 r5524 18 18 19 19 <properties> 20 <pustefix.version>0.15.11</pustefix.version>21 20 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 22 21 </properties> … … 41 40 <groupId>org.pustefixframework</groupId> 42 41 <artifactId>pustefix-core</artifactId> 43 <version> ${pustefix.version}</version>42 <version>0.15.17-SNAPSHOT</version> 44 43 </dependency> 45 44 </dependencies> … … 58 57 <groupId>org.pustefixframework.maven.plugins</groupId> 59 58 <artifactId>pustefix-webapp-plugin</artifactId> 60 <version> ${pustefix.version}</version>59 <version>0.15.17-SNAPSHOT</version> 61 60 <executions> 62 61 <execution> … … 71 70 <groupId>org.pustefixframework.maven.plugins</groupId> 72 71 <artifactId>pustefix-statuscode-plugin</artifactId> 73 <version> ${pustefix.version}</version>72 <version>0.15.17-SNAPSHOT</version> 74 73 <executions> 75 74 <execution> … … 83 82 <groupId>org.pustefixframework.maven.plugins</groupId> 84 83 <artifactId>pustefix-iwrapper-plugin</artifactId> 85 <version> ${pustefix.version}</version>84 <version>0.15.17-SNAPSHOT</version> 86 85 <executions> 87 86 <execution> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/Dictionary.java
r5352 r5524 2 2 3 3 import java.util.ArrayList; 4 import java.util.HashMap; 4 5 import java.util.List; 6 import java.util.Locale; 7 import java.util.Map; 5 8 import java.util.Random; 6 9 … … 8 11 9 12 private Random random = new Random(); 10 private List<String> words = new ArrayList<String>(); 13 private Map<Locale, List<String>> words = new HashMap<Locale, List<String>>(); 14 private int maxBeginnerLen = 13; 15 private int maxAdvancedLen = 20; 11 16 12 17 public Dictionary() { 13 words.add("Transplantationsmedizin"); 14 words.add("Immatrikulationsbescheinigung"); 15 words.add("Naherholungsgebiet"); 16 words.add("Eisenbahnschaffner"); 17 words.add("Koalitionsverhandlung"); 18 words.add("Suchtberatungsstelle"); 19 words.add("Wiederaufbereitungsanlage"); 20 words.add("Atomwaffensperrvertrag"); 21 words.add("Proliferationsabkommen"); 22 words.add("Chemiewaffenkonvention"); 23 words.add("Druckwasserreaktor"); 24 words.add("Bereitstellungskosten"); 25 words.add("Revolutionsromantik"); 26 words.add("Panzerabwehrrakete"); 27 words.add("Reichweitenanalyse"); 28 words.add("Kampfmittelbeseitigungsdienst"); 29 words.add("Ertragsanteilsbesteuerung"); 30 words.add("Fertigungsprozessoptimierung"); 31 words.add("Einlassungsobliegenheit"); 32 words.add("Zentralsteuerungshypothese"); 33 words.add("Nahverkehrsgesellschaft"); 34 words.add("Imperialismustheorie"); 35 words.add("Hydrokulturpflanzen"); 36 words.add("Differentialquotient"); 37 words.add("Infinitesimalrechnung"); 38 words.add("Beschleunigungssensor"); 39 words.add("Kaltluftentstehungsgebiete"); 40 words.add("Revitalisierungskosten"); 18 19 List<String> wordsDE = new ArrayList<String>(); 20 List<String> wordsEN = new ArrayList<String>(); 21 words.put(Locale.GERMAN, wordsDE); 22 words.put(Locale.ENGLISH, wordsEN); 23 24 wordsDE.add("Reinigung"); 25 wordsDE.add("Regierung"); 26 wordsDE.add("Steuerung"); 27 wordsDE.add("Regulierung"); 28 wordsDE.add("Relativierung"); 29 wordsDE.add("Handbetrieb"); 30 wordsDE.add("Fehleinkauf"); 31 wordsDE.add("Hausschwein"); 32 wordsDE.add("Rollentausch"); 33 34 wordsDE.add("Naherholungsgebiet"); 35 wordsDE.add("Eisenbahnschaffner"); 36 wordsDE.add("Revolutionsromantik"); 37 wordsDE.add("Panzerabwehrrakete"); 38 wordsDE.add("Reichweitenanalyse"); 39 wordsDE.add("Druckwasserreaktor"); 40 wordsDE.add("Bereitstellungskosten"); 41 wordsDE.add("Koalitionsverhandlung"); 42 wordsDE.add("Suchtberatungsstelle"); 43 44 wordsDE.add("Transplantationsmedizin"); 45 wordsDE.add("Immatrikulationsbescheinigung"); 46 wordsDE.add("Wiederaufbereitungsanlage"); 47 wordsDE.add("Atomwaffensperrvertrag"); 48 wordsDE.add("Proliferationsabkommen"); 49 wordsDE.add("Chemiewaffenkonvention"); 50 wordsDE.add("Kampfmittelbeseitigungsdienst"); 51 wordsDE.add("Ertragsanteilsbesteuerung"); 52 wordsDE.add("Fertigungsprozessoptimierung"); 53 wordsDE.add("Einlassungsobliegenheit"); 54 wordsDE.add("Zentralsteuerungshypothese"); 55 wordsDE.add("Nahverkehrsgesellschaft"); 56 wordsDE.add("Imperialismustheorie"); 57 wordsDE.add("Hydrokulturpflanzen"); 58 wordsDE.add("Differentialquotient"); 59 wordsDE.add("Infinitesimalrechnung"); 60 wordsDE.add("Beschleunigungssensor"); 61 wordsDE.add("Kaltluftentstehungsgebiete"); 62 wordsDE.add("Revitalisierungskosten"); 63 64 wordsEN.add("affirmation"); 65 wordsEN.add("insurance"); 66 wordsEN.add("assertion"); 67 wordsEN.add("assurance"); 68 wordsEN.add("accumulator"); 69 wordsEN.add("warehouse"); 70 wordsEN.add("clearance"); 71 wordsEN.add("maintenance"); 72 wordsEN.add("brainwash"); 73 wordsEN.add("malediction"); 74 wordsEN.add("punishment"); 75 wordsEN.add("disadvantage"); 76 wordsEN.add("subversion"); 77 78 wordsEN.add("mispronunciation"); 79 wordsEN.add("tintinnabulation"); 80 wordsEN.add("plenipotentiary"); 81 wordsEN.add("prestidigitation"); 82 wordsEN.add("machiavellianism"); 83 wordsEN.add("hypervitaminosis"); 84 85 wordsEN.add("disproportionableness"); 86 wordsEN.add("antitransubstantiationalist"); 87 wordsEN.add("psychophysicotherapeutics"); 88 wordsEN.add("radioimmunoelectrophoresis"); 89 wordsEN.add("floccinaucinihilipilification"); 90 wordsEN.add("honorificabilitudinitatibus"); 91 wordsEN.add("antidisestablishment"); 92 wordsEN.add("antidisestablishmentarianism"); 93 41 94 } 42 95 43 public String getRandomWord() { 44 int rand = random.nextInt(words.size()); 45 return words.get(rand); 96 public String getRandomWord(Locale locale, DifficultyLevel level) { 97 List<String> localeWords = words.get(locale); 98 if(localeWords == null) localeWords = words.get(Locale.ENGLISH); 99 List<String> levelWords = new ArrayList<String>(); 100 int minLen = maxAdvancedLen + 1; 101 int maxLen = Integer.MAX_VALUE; 102 if(level == DifficultyLevel.BEGINNER) { 103 minLen = 1; 104 maxLen = maxBeginnerLen; 105 } else if(level == DifficultyLevel.ADVANCED) { 106 minLen = maxBeginnerLen + 1; 107 maxLen = maxAdvancedLen; 108 } 109 for(String word: localeWords) { 110 if(word.length() >= minLen && word.length() <= maxLen) levelWords.add(word); 111 } 112 int rand = random.nextInt(levelWords.size()); 113 return levelWords.get(rand); 114 } 115 116 public DifficultyLevel getDifficultyLevel(String word) { 117 int len = word.length(); 118 if(len <= maxBeginnerLen) return DifficultyLevel.BEGINNER; 119 else if(len <= maxAdvancedLen) return DifficultyLevel.ADVANCED; 120 else return DifficultyLevel.EXPERT; 46 121 } 47 122 … … 49 124 Dictionary dict = new Dictionary(); 50 125 for(int i=0;i<100;i++) { 51 System.out.println(dict.getRandomWord( ));126 System.out.println(dict.getRandomWord(Locale.ENGLISH, DifficultyLevel.BEGINNER)); 52 127 } 53 128 } -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/context/ContextPlay.java
r5352 r5524 1 1 package sample.games.hangman.context; 2 2 3 3 4 public class ContextPlay { 4 5 5 6 private String word; 6 7 private String displayWord; 7 private int tries; 8 private int misses; 9 private long startTime; 10 private long endTime; 11 12 public void reset() { 13 word = null; 14 displayWord = null; 15 misses = 0; 16 startTime = 0; 17 endTime = 0; 18 } 8 19 9 20 public String getWord() { … … 12 23 public void setWord(String word) { 13 24 this.word = word; 25 setDisplayWord(word.replaceAll("." , "_")); 14 26 } 15 public String getDisplayWord() { 16 return displayWord; 17 } 27 18 28 public void setDisplayWord(String displayWord) { 19 29 this.displayWord = displayWord; 20 30 } 21 31 22 public int getTries() {23 return tries;32 public String getDisplayWord() { 33 return displayWord; 24 34 } 25 35 26 public void incTries() { 27 tries++; 36 public void guess(char ch) { 37 StringBuilder sb = new StringBuilder(); 38 boolean ok = false; 39 for(int i=0; i<word.length(); i++) { 40 if(Character.toUpperCase(word.charAt(i)) == ch) { 41 sb.append(ch); 42 ok = true; 43 } else { 44 sb.append(displayWord.charAt(i)); 45 } 46 } 47 setDisplayWord(sb.toString()); 48 if(!ok) misses++; 49 if(isCompletedSuccessful()) end(); 28 50 } 29 51 52 public int getMisses() { 53 return misses; 54 } 55 56 public boolean isCompletedSuccessful() { 57 return !displayWord.contains("_"); 58 } 59 60 public boolean isCompletedFaulty() { 61 return misses > 5; 62 } 63 64 public boolean isCompleted() { 65 return isCompletedSuccessful() || isCompletedFaulty(); 66 } 67 68 public void start() { 69 startTime = System.currentTimeMillis(); 70 } 71 72 public void end() { 73 endTime = System.currentTimeMillis(); 74 } 75 76 public long getTime() { 77 if(startTime == 0) return 0; 78 return (endTime == 0 ? System.currentTimeMillis() : endTime) - startTime; 79 } 80 30 81 } -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/handler/PlayHandler.java
r5352 r5524 4 4 import org.springframework.beans.factory.annotation.Autowired; 5 5 6 import sample.games.hangman.Dictionary; 7 import sample.games.hangman.HighScore; 8 import sample.games.hangman.Score; 9 import sample.games.hangman.StatusCodes; 6 10 import sample.games.hangman.context.ContextPlay; 7 import sample.games.hangman.context.User; 11 import sample.games.hangman.context.ContextSettings; 12 import sample.games.hangman.context.ContextUser; 8 13 import sample.games.hangman.wrapper.Play; 9 14 import de.schlund.pfixcore.generator.IHandler; … … 14 19 15 20 private ContextPlay contextPlay; 16 private User user; 17 21 private ContextUser contextUser; 22 private ContextSettings contextSettings; 23 private Dictionary dictionary; 24 private HighScore highScore; 25 18 26 public void handleSubmittedData(Context context, IWrapper wrapper) throws Exception { 19 27 20 28 Play play = (Play)wrapper; 21 System.out.println(play.getLetter()); 22 23 char ch = play.getLetter().charAt(0); 24 25 String word = contextPlay.getWord(); 26 String displayWord = contextPlay.getDisplayWord(); 27 StringBuilder sb = new StringBuilder(); 28 boolean ok = false; 29 for(int i=0; i<word.length(); i++) { 30 if(Character.toUpperCase(word.charAt(i)) == ch) { 31 sb.append(ch); 32 ok = true; 33 } else { 34 sb.append(displayWord.charAt(i)); 35 } 29 if(play.getReset()) { 30 contextPlay.reset(); 31 } else { 32 if(!contextPlay.isCompleted()) { 33 char ch = play.getLetter().charAt(0); 34 contextPlay.guess(ch); 35 if(contextPlay.isCompletedFaulty()) { 36 context.addPageMessage(StatusCodes.FAILURE, new String[] {contextPlay.getWord()}, null); 37 context.prohibitContinue(); 38 } else if(contextPlay.isCompletedSuccessful()) { 39 boolean scored = highScore.addScore(new Score(contextPlay.getTime(), contextPlay.getMisses(), 40 dictionary.getDifficultyLevel(contextPlay.getWord()), contextUser.getName())); 41 if(scored) context.addPageMessage(StatusCodes.SUCCESS_HIGH, null, null); 42 else context.addPageMessage(StatusCodes.SUCCESS, null , null); 43 context.prohibitContinue(); 44 } 45 } 36 46 } 37 contextPlay.setDisplayWord(sb.toString());38 if(!ok) contextPlay.incTries();39 40 41 47 } 42 48 43 49 public boolean isActive(Context context) throws Exception { 44 return user.getName() != null;50 return contextUser.getName() != null && contextSettings.getDifficultyLevel() != null; 45 51 } 46 52 … … 54 60 55 61 public void retrieveCurrentStatus(Context context, IWrapper wrapper) throws Exception { 56 62 if(contextPlay.getWord() == null) { 63 String word = dictionary.getRandomWord(contextSettings.getLocale(), contextSettings.getDifficultyLevel()); 64 contextPlay.setWord(word); 65 contextPlay.start(); 66 } 57 67 } 58 68 59 69 @Autowired 60 public void setUser( User user) {61 this. user = user;70 public void setUser(ContextUser contextUser) { 71 this.contextUser = contextUser; 62 72 } 63 73 … … 67 77 } 68 78 79 @Autowired 80 public void setContextSettings(ContextSettings contextSettings) { 81 this.contextSettings = contextSettings; 82 } 83 84 @Autowired 85 public void setDictionary(Dictionary dictionary) { 86 this.dictionary = dictionary; 87 } 88 89 @Autowired 90 public void setHighScore(HighScore highScore) { 91 this.highScore = highScore; 92 } 93 69 94 } -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/handler/RegistrationHandler.java
r5352 r5524 4 4 import org.springframework.beans.factory.annotation.Autowired; 5 5 6 import sample.games.hangman.Dictionary; 7 import sample.games.hangman.context.ContextPlay; 8 import sample.games.hangman.context.User; 6 import sample.games.hangman.context.ContextUser; 9 7 import sample.games.hangman.wrapper.Registration; 10 8 import de.schlund.pfixcore.generator.IHandler; … … 14 12 public class RegistrationHandler implements IHandler { 15 13 16 private Dictionary dictionary; 17 private ContextPlay contextPlay; 18 private User user; 14 private ContextUser user; 19 15 20 16 public void handleSubmittedData(Context context, IWrapper wrapper) throws Exception { … … 22 18 Registration registration = (Registration)wrapper; 23 19 user.setName(registration.getName()); 24 25 String word = dictionary.getRandomWord();26 contextPlay.setWord(word);27 contextPlay.setDisplayWord(word.replaceAll("." , "_"));28 29 20 } 30 21 31 22 public boolean isActive(Context context) throws Exception { 32 return true;23 return user.getName() == null; 33 24 } 34 25 … … 49 40 50 41 @Autowired 51 public void setUser( User user) {42 public void setUser(ContextUser user) { 52 43 this.user = user; 53 44 } 54 45 55 @Autowired56 public void setDictionary(Dictionary dictionary) {57 this.dictionary = dictionary;58 }59 60 @Autowired61 public void setContextPlay(ContextPlay contextPlay) {62 this.contextPlay = contextPlay;63 }64 65 46 } -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/state/ByeState.java
r5352 r5524 1 1 package sample.games.hangman.state; 2 2 3 import sample.games.hangman.context. User;3 import sample.games.hangman.context.ContextUser; 4 4 import org.springframework.beans.factory.annotation.Autowired; 5 5 … … 10 10 public class ByeState extends StaticState { 11 11 12 private User user;12 private ContextUser user; 13 13 14 14 @Override … … 18 18 19 19 @Autowired 20 public void setUser( User user) {20 public void setUser(ContextUser user) { 21 21 this.user = user; 22 22 } -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/java/sample/games/hangman/wrapper/Play.iwrp
r5352 r5524 6 6 <ihandler class="sample.games.hangman.handler.PlayHandler"/> 7 7 8 <param name="letter" type="java.lang.String" occurrence=" mandatory">8 <param name="letter" type="java.lang.String" occurrence="optional"> 9 9 <precheck class="de.schlund.pfixcore.generator.prechecks.RegexpCheck"> 10 10 <cparam name="regexp" value="/[A-Z]/"/> 11 11 </precheck> 12 12 </param> 13 14 <param name="reset" type="java.lang.Boolean"> 15 <default><value>false</value></default> 16 <caster class="de.schlund.pfixcore.generator.casters.ToBoolean"/> 17 </param> 13 18 14 19 </interface> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/WEB-INF/app.xml
r5352 r5524 9 9 10 10 <context defaultpage="Home"> 11 <resource bean-name="contextUser" class="sample.games.hangman.context. User"/>11 <resource bean-name="contextUser" class="sample.games.hangman.context.ContextUser"/> 12 12 <resource bean-name="contextPlay" class="sample.games.hangman.context.ContextPlay"/> 13 <resource bean-name="contextSettings" class="sample.games.hangman.context.ContextSettings"/> 13 14 </context> 14 15 15 16 <pageflow name="MainFlow" final="Home"> 16 17 <flowstep name="Home"/> 18 <flowstep name="Settings"/> 17 19 <flowstep name="Play"/> 18 <flowstep name=" Bye"/>20 <flowstep name="Highscore"/> 19 21 </pageflow> 20 22 21 23 <pagerequest name="Home"> 24 <input policy="NONE"> 25 <wrapper prefix="registration" class="sample.games.hangman.wrapper.Registration"/> 26 </input> 27 <output> 28 <resource node="user" bean-ref="contextUser"/> 29 </output> 30 </pagerequest> 31 32 <pagerequest name="Settings"> 22 33 <input> 23 <wrapper prefix=" registration" class="sample.games.hangman.wrapper.Registration"/>34 <wrapper prefix="settings" class="sample.games.hangman.wrapper.Settings"/> 24 35 </input> 25 36 </pagerequest> … … 34 45 </pagerequest> 35 46 36 <pagerequest name="Bye"> 37 <state class="sample.games.hangman.state.ByeState"/> 47 <pagerequest name="Highscore"> 38 48 <output> 39 <resource node=" user" bean-ref="contextUser"/>49 <resource node="highscore" bean-ref="highscore"/> 40 50 </output> 41 51 </pagerequest> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/WEB-INF/depend.xml
r5376 r5524 10 10 <navigation> 11 11 <page handler="/xml/app" name="Home"/> 12 <page handler="/xml/app" name="Settings"/> 12 13 <page handler="/xml/app" name="Play"/> 13 <page handler="/xml/app" name=" Bye"/>14 <page handler="/xml/app" name="Highscore"/> 14 15 </navigation> 15 16 … … 23 24 24 25 <standardpage name="Home" xml="xml/frame.xml"/> 26 <standardpage name="Settings" xml="xml/frame.xml"/> 25 27 <standardpage name="Play" xml="xml/frame.xml"/> 26 <standardpage name=" Bye" xml="xml/frame.xml"/>28 <standardpage name="Highscore" xml="xml/frame.xml"/> 27 29 28 30 </make> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/WEB-INF/spring.xml
r5352 r5524 11 11 <bean id="dictionary" class="sample.games.hangman.Dictionary"/> 12 12 13 <bean id="highscore" class="sample.games.hangman.HighScore"/> 14 13 15 </beans> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/css/style.css
r5376 r5524 1 /* put your application's common CSS styles here */2 3 1 body { 4 margin: 0 px;5 background: #fff;2 margin: 0; 3 padding: 0; 6 4 font-family: sans-serif; 7 5 } 8 6 9 div#header { 10 background: #666; 11 background-image: url(../img/logo.png); 12 background-repeat: no-repeat; 13 background-position:10px 4px; 14 width: 100%; 15 height: 65px; 16 padding-left: 80px; 17 padding-top: 25px; 18 color: #fff; 19 font-size: 35px; 20 font-family: sans-serif; 7 body { 8 background: #fff url(../img/background.png) 0 0 repeat-x; 9 } 10 11 #header { 12 height: 68px; 13 margin: 15px; 21 14 } 22 15 23 div.content { 16 #navigation { 17 margin: 10px; 18 padding: 10px; 19 } 20 21 div#content { 24 22 padding: 10px; 23 margin: 20px; 24 25 } 26 27 #footer { 28 position: absolute; 29 top: 20px; 30 right: 200px; 31 font-size: 60%; 32 color: #ccc; 25 33 } 26 34 27 35 span.error { 28 color: red; 29 padding-left: 10px; 36 color: white; 37 background-color: red; 38 margin-left: 10px; 39 padding: 2px; 30 40 } 41 42 43 div.field_caption { 44 font-weight: bold; 45 padding-bottom: 5px; 46 } 47 48 div#navigation a.core_button_normal { 49 color: #fff; 50 padding: 10px; 51 } 52 53 div#navigation span.core_button_active { 54 color: #fff; 55 font-weight: bold; 56 padding: 10px; 57 } 58 59 div#navigation span.core_button_invisible { 60 color: #aaa; 61 padding: 10px; 62 } 63 64 a.core_button_normal { 65 color: #000; 66 } 67 68 span.core_button_active { 69 color: #000; 70 font-weight: bold; 71 } 72 73 table.data { 74 border-spacing: 0px; 75 border: 1px solid #fff; 76 } 77 78 table.data th { 79 background: #ccc; 80 padding: 10px; 81 padding-right: 20px; 82 } 83 84 table.data td { 85 padding: 10px; 86 padding-right: 20px; 87 } 88 89 tr.odd { 90 background: #ddd; 91 } 92 93 tr.even { 94 background: #eee; 95 } 96 97 table.form { 98 border-spacing: 0px; 99 } 100 101 table.form th { 102 padding: 10px; 103 padding-left: 0px; 104 } 105 106 table.form td { 107 padding: 10px; 108 padding-left: 15px; 109 } 110 111 input.data { 112 margin-left: 10px; 113 margin-right: 5px; 114 } 115 116 input.radio { 117 margin-right: 7px; 118 } 119 120 div.setting { 121 font-weight: bold; 122 margin-bottom: 10px; 123 margin-top: 10px; 124 } 125 126 div.PfxMessage { 127 color: #000; 128 font-size: 120%; 129 margin-left: 10px; 130 padding: 2px; 131 } -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/dyntxt/statusmessages.xml
r5352 r5524 8 8 Name isn't valid, it requires at least 3 characters. 9 9 </theme> 10 <theme name="de"> 11 Der Name ist ungÃŒltig, er muss mindestens 3 Zeichen haben. 12 </theme> 13 </part> 14 15 <part name="FAILURE"> 16 <theme name="default"> 17 You have lost. The searched word was <b><pfx:argref pos="1"/></b>. 18 </theme> 19 <theme name="de"> 20 Du hast verloren. 21 </theme> 22 </part> 23 24 <part name="SUCCESS"> 25 <theme name="default"> 26 You have won! 27 </theme> 28 <theme name="de"> 29 Du hast gewonnen! 30 </theme> 31 </part> 32 33 <part name="SUCCESS_HIGH"> 34 <theme name="default"> 35 You have won and made it into the highscore!!! 36 </theme> 37 <theme name="de"> 38 Du hast gewonnen und es in die Rangliste geschafft!!! 39 </theme> 10 40 </part> 11 41 -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/modules-override/pustefix-core/dyntxt/statusmessages-core-merged.xml
r5352 r5524 10 10 <part name="MISSING_PARAM"> 11 11 <theme name="default">This parameter is mandatory.</theme> 12 <theme name="de">Diese Angabe ist verpflichtend.</theme> 12 13 </part> 13 14 <part name="caster.ERR_TO_BOOLEAN"> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/txt/common.xml
r5376 r5524 3 3 4 4 <part name="title"> 5 <theme name="default">Hangman</theme> 6 <theme name="de">Galgenmann</theme> 7 </part> 8 9 <part name="powered_by"> 5 10 <theme name="default"> 6 Hangman11 Powered by Pustefix Framework <ixsl:value-of select="pfx:getFrameworkVersion()"/> 7 12 </theme> 8 13 <theme name="de"> 9 Galgenmann14 Erstellt mit Pustefix Framework <ixsl:value-of select="pfx:getFrameworkVersion()"/> 10 15 </theme> 11 16 </part> 17 12 18 </include_parts> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/txt/pages/Home.xml
r5376 r5524 6 6 7 7 <h3><pfx:include part="greeting"/></h3> 8 9 <pfx:forminput> 10 Please enter your name: 11 <pfx:xinp type="text" name="registration.name" size="20"/> 12 <pfx:xinp type="submit" value="Submit"/> 13 <show-error field="registration.name"/> 14 </pfx:forminput> 15 8 9 <pfx:checkactive prefix="registration"> 10 <pfx:forminput> 11 <pfx:include part="name"/> 12 <pfx:xinp type="text" name="registration.name" size="20" class="data"/> 13 <pfx:xinp type="submit"> 14 <pfx:value><pfx:include part="submit"/></pfx:value> 15 </pfx:xinp> 16 <show-error field="registration.name"/> 17 </pfx:forminput> 18 </pfx:checkactive> 19 20 <pfx:checknotactive prefix="registration"> 21 <pfx:button page="Play" mode="force"><pfx:include part="play"/> <ixsl:value-of select="/formresult/user/@name"/>!</pfx:button> 22 </pfx:checknotactive> 23 16 24 </theme> 17 25 </part> 26 27 <part name="title"> 28 <theme name="default">Home</theme> 29 <theme name="de">Start</theme> 18 30 </part> 19 31 … … 22 34 Welcome to <pfx:include href="txt/common.xml" part="title"/>! 23 35 </theme> 24 <theme name="en"> 25 Willkommen zu <pfx:include href="txt/common.xml" part="title"/>! 36 <theme name="de"> 37 Willkommen bei <pfx:include href="txt/common.xml" part="title"/>! 38 </theme> 39 </part> 40 41 <part name="name"> 42 <theme name="default"> 43 Please enter your name: 44 </theme> 45 <theme name="de"> 46 Bitte gib deinen Namen ein: 47 </theme> 48 </part> 49 50 <part name="submit"> 51 <theme name="default">Submit</theme> 52 <theme name="de">Senden</theme> 53 </part> 54 55 <part name="play"> 56 <theme name="default"> 57 Let's play, 58 </theme> 59 <theme name="de"> 60 Lass uns spielen, 26 61 </theme> 27 62 </part> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/txt/pages/Play.xml
r5352 r5524 4 4 <theme name="default"> 5 5 6 <h3>Play!!!</h3> 7 <img src="{$__contextpath}/img/Hangman-{/formresult/play/@tries}.png"/> 6 <img src="{$__contextpath}/img/Hangman-{/formresult/play/@misses}.png"/> 8 7 <div style="padding: 23pt; letter-spacing: 0.3em;font-size:25pt"> 8 9 9 <ixsl:value-of select="/formresult/play/@displayWord"/> 10 10 </div> 11 <buttons/> 11 <ixsl:if test="/formresult/play/@completed='false'"> 12 <buttons/> 13 </ixsl:if> 14 <show-messages/> 15 <br/><br/> 16 <pfx:button page="Play" mode="force"><pfx:argument name="play.reset">true</pfx:argument>New game</pfx:button> 12 17 </theme> 13 18 </part> 19 20 <part name="title"> 21 <theme name="default">Play</theme> 22 <theme name="de">Spiel</theme> 23 </part> 24 14 25 </include_parts> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/xml/frame.xml
r5376 r5524 8 8 </head> 9 9 <body> 10 11 <div id="container"> 12 13 10 14 <div id="header"> 11 <pfx:include href="txt/common.xml" part="title"/> 15 <!-- <pfx:include href="txt/common.xml" part="title"/> --> 16 <pfx:image themed-path="img" themed-img="logo.png" align="middle"/> 17 <span id="footer"><pfx:include href="txt/common.xml" part="powered_by"/></span> 12 18 </div> 13 <div class="content"> 19 20 <div id="navigation"> 21 <navibutton page="Home"/> 22 <navibutton page="Settings"/> 23 <navibutton page="Play"/> 24 <navibutton page="Highscore"/> 25 </div> 26 27 <div id="content"> 14 28 <pfx:maincontent prefix=""/> 29 <pfx:editconsole/> 15 30 </div> 16 <pfx:editconsole/> 31 32 33 34 35 36 </div> 37 17 38 </body> 18 39 </html> -
branches/release-0.16.x/pustefix-samples/pustefix-hangman/src/main/webapp/xsl/metatags.xsl
r5352 r5524 38 38 </xsl:template> 39 39 40 <xsl:template match="show-messages"> 41 <pfx:checkmessage> 42 <pfx:messageloop> 43 <div> 44 <xsl:attribute name="class">{$pfx_class}</xsl:attribute> 45 <pfx:scode/> 46 </div> 47 </pfx:messageloop> 48 </pfx:checkmessage> 49 </xsl:template> 50 51 <xsl:template match="navibutton"> 52 <pfx:button page="{@page}"><pfx:include href="txt/pages/{@page}.xml" part="title"/></pfx:button> 53 </xsl:template> 40 54 41 55 </xsl:stylesheet> -
branches/release-0.16.x/pustefix-samples/pustefix-sample-basic/pom.xml
r5419 r5524 69 69 <groupId>org.pustefixframework.maven.plugins</groupId> 70 70 <artifactId>pustefix-iwrapper-plugin</artifactId> 71 <version>0.1 6.0-SNAPSHOT</version>71 <version>0.15.17-SNAPSHOT</version> 72 72 <executions> 73 73 <execution> -
branches/release-0.16.x/pustefix-samples/pustefix-sample-firstapp/src/main/webapp/WEB-INF/web.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-samples/pustefix-sample1 (added) merged: 5427,5429,5460,5462,5465-5468,5476,5478,5481,5484,5486,5489,5491,5498
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/pom.xml
r5419 r5524 55 55 <build> 56 56 <plugins> 57 <plugin> 58 <groupId>org.codehaus.mojo</groupId> 59 <artifactId>tomcat-maven-plugin</artifactId> 60 <version>1.1</version> 61 <configuration> 62 <uriEncoding>UTF-8</uriEncoding> 63 </configuration> 64 </plugin> 57 65 <plugin> 58 66 <!-- some tests operated on the exploded webapp --> -
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/java/de
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-samples/pustefix-sample1/src/main/java/de (added) merged: 5467,5481
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/java/de/schlund/pfixcore/example/EncodingTestHandler.java
r4526 r5524 18 18 package de.schlund.pfixcore.example; 19 19 20 import de.schlund.pfixcore.example.iwrapper.EncodingTest ;20 import de.schlund.pfixcore.example.iwrapper.EncodingTestWrapper; 21 21 import de.schlund.pfixcore.generator.IHandler; 22 22 import de.schlund.pfixcore.generator.IWrapper; … … 24 24 25 25 /** 26 * @author ml 27 * 28 * To change the template for this generated type comment go to 29 * Window - Preferences - Java - Code Generation - Code and Comments 26 * 27 * @author mleidig@schlund.de 28 * 30 29 */ 31 30 public class EncodingTestHandler implements IHandler { 32 31 33 32 public void handleSubmittedData(Context context,IWrapper wrapper) throws Exception { 34 EncodingTest test = (EncodingTest)wrapper;33 EncodingTestWrapper test = (EncodingTestWrapper)wrapper; 35 34 String encoding = test.getEncoding(); 36 35 if (encoding == null || encoding.trim().equals("") || encoding.equals("none")) { … … 41 40 42 41 public void retrieveCurrentStatus(Context context,IWrapper wrapper) throws Exception { 43 EncodingTest test = (EncodingTest)wrapper;42 EncodingTestWrapper test = (EncodingTestWrapper)wrapper; 44 43 ContextEncodingTest ctx = context.getContextResourceManager().getResource(ContextEncodingTest.class); 45 44 if (ctx.getText() != null) test.setText(ctx.getText()); -
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/java/de/schlund/pfixcore/example/iwrapper
- Property svn:ignore
-
old new 1 *.java 1
-
- Property svn:ignore
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/webapp
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-samples/pustefix-sample1/src/main/webapp (added) merged: 5466-5468,5498
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF (added) merged: 5466-5468,5498
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/config.conf.xml
r5358 r5524 200 200 <state class="de.schlund.pfixcore.example.EncodingTestState" /> 201 201 <input> 202 <wrapper prefix="text" class="de.schlund.pfixcore.example.iwrapper.EncodingTest" /> 202 <wrapper prefix="text" class="de.schlund.pfixcore.example.iwrapper.EncodingTestWrapper" /> 203 <wrapper prefix="upload" class="de.schlund.pfixcore.example.iwrapper.EncodingTestUpload" /> 203 204 </input> 204 205 <output> -
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/pfixlog.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/project.xml
r5517 r5524 101 101 102 102 <static> 103 <path>core/img</path>104 <path>core/script</path>105 103 <path>img</path> 106 <path>modules/animal-module/img</path>107 104 </static> 108 105 -
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/spring.xml
r5108 r5524 33 33 <property name="text" value="${testdata.defaulttext}"/> 34 34 </bean> 35 36 <bean id="enctest_handler" class="de.schlund.pfixcore.example.EncodingTestHandler"/> 35 37 36 38 </beans> -
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/main/webapp/WEB-INF/web.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/test
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/test/java
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/test/java/de/schlund/pfixcore/example/HomePageTest.java
- Property svn:mergeinfo deleted
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/test/java/de/schlund/pfixcore/generator
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/test/java/de/schlund/pfixcore/generator/iwrpgen/IWrapperBeanTest.java
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-sample1/src/test/java/de/schlund/pfixxml/targets/TargetGeneratorTest.java
- Property svn:mergeinfo deleted
-
branches/release-0.16.x/pustefix-samples/pustefix-samplebank
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-samples/pustefix-samplebank (added) merged: 5427,5429,5460,5462,5476,5478,5484,5486,5489,5491
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-samples/pustefix-samplebank/src/main/java/de
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-samplebank/src/main/java/de/schlund/pfixcore/example/bank
- Property svn:mergeinfo deleted
-
branches/release-0.16.x/pustefix-samples/pustefix-samplebank/src/main/webapp
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-samplebank/src/main/webapp/WEB-INF
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-samplebank/src/main/webapp/WEB-INF/spring.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-samplebank/src/main/webapp/WEB-INF/web.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-samplebank/src/test
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-testsuite
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-samples/pustefix-testsuite (added) merged: 5427,5429,5460,5462,5476,5478,5484,5486,5489,5491
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-samples/pustefix-testsuite/src/main/java/de
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-testsuite/src/main/java/de/schlund/pfixcore/testsuite
- Property svn:mergeinfo deleted
-
branches/release-0.16.x/pustefix-samples/pustefix-testsuite/src/main/webapp
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-testsuite/src/main/webapp/WEB-INF
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-testsuite/src/main/webapp/WEB-INF/pfixlog.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-testsuite/src/main/webapp/WEB-INF/spring.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-testsuite/src/main/webapp/WEB-INF/web.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-webservice
- Property svn:mergeinfo changed
/branches/release-0.15.x/pustefix-samples/pustefix-webservice (added) merged: 5427,5429,5460,5462,5476,5478,5484,5486,5489,5491
- Property svn:mergeinfo changed
-
branches/release-0.16.x/pustefix-samples/pustefix-webservice/src/main/java/de
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-webservice/src/main/webapp
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-webservice/src/main/webapp/WEB-INF
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/pustefix-webservice/src/main/webapp/WEB-INF/web.xml
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/release-0.16.x/pustefix-samples/sample-modules/animal-module/src/main/resources/META-INF/pustefix-module.xml
r5390 r5524 6 6 7 7 <module-name>animal-module</module-name> 8 9 <static> 10 <path>img</path> 11 </static> 8 12 9 13 </module-descriptor> -
branches/release-0.16.x/pustefix-samples/sample-modules/pom.xml
r5419 r5524 30 30 <version>0.16.0-SNAPSHOT</version> 31 31 <configuration> 32 <module>${ artifactId}</module>32 <module>${project.artifactId}</module> 33 33 <includes> 34 34 <include>dyntxt/statuscodeinfo.xml</include> -
branches/release-0.16.x/pustefix-webservices/pustefix-webservices-core/pom.xml
r5419 r5524 16 16 <groupId>org.springframework</groupId> 17 17 <artifactId>spring-context</artifactId> 18 <version>3.0. 3.RELEASE</version>18 <version>3.0.5.RELEASE</version> 19 19 </dependency> 20 20 <dependency> 21 21 <groupId>org.springframework</groupId> 22 22 <artifactId>spring-test</artifactId> 23 <version>3.0. 3.RELEASE</version>23 <version>3.0.5.RELEASE</version> 24 24 </dependency> 25 25 <dependency>
