├── content ├── content-tutorial-cmis │ ├── .gitignore │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── someco │ │ │ │ ├── examples │ │ │ │ └── ExampleBase.java │ │ │ │ └── cmis │ │ │ │ └── examples │ │ │ │ ├── FolderFinder.java │ │ │ │ ├── FolderFinderByNameSearch.java │ │ │ │ ├── SomeCoCMISDataCreator.java │ │ │ │ ├── TypeDefinitionExample.java │ │ │ │ ├── BulkExample.java │ │ │ │ ├── SomeCoCMISParents.java │ │ │ │ ├── CheckoutCheckinExample.java │ │ │ │ ├── PermissionExample.java │ │ │ │ └── SomeCoCMISDataCleaner.java │ │ │ └── resources │ │ │ └── log4j2.xml │ └── pom.xml ├── content-tutorial │ ├── content-tutorial-share │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ └── alfresco │ │ │ │ │ ├── web-extension │ │ │ │ │ ├── messages │ │ │ │ │ │ └── scModel.properties │ │ │ │ │ └── content-tutorial-share-jar-application-context.xml │ │ │ │ │ └── module │ │ │ │ │ └── content-tutorial-share │ │ │ │ │ └── log4j.properties │ │ │ │ └── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ └── README.md │ │ ├── pom.xml │ │ └── readme.md │ ├── content-tutorial-platform │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── META-INF │ │ │ │ │ └── resources │ │ │ │ │ │ └── test.html │ │ │ │ └── alfresco │ │ │ │ │ └── module │ │ │ │ │ └── content-tutorial-platform │ │ │ │ │ ├── alfresco-global.properties │ │ │ │ │ ├── messages │ │ │ │ │ └── scModel.properties │ │ │ │ │ ├── module-context.xml │ │ │ │ │ ├── context │ │ │ │ │ └── service-context.xml │ │ │ │ │ ├── log4j.properties │ │ │ │ │ └── module.properties │ │ │ │ ├── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ │ └── README.md │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── someco │ │ │ │ └── model │ │ │ │ └── SomeCoModel.java │ │ └── pom.xml │ ├── content-tutorial-platform-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ ├── license │ │ │ └── README.md │ │ │ └── Dockerfile │ ├── content-tutorial-share-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ └── Dockerfile │ └── docker │ │ └── docker-compose.yml └── tutorial │ └── images │ ├── model.png │ ├── model.ppt │ ├── add-aspect.png │ ├── cmis-assocs.png │ ├── has-aspect.png │ ├── type-check.png │ ├── add-aspect-hi.png │ ├── cc-by-sa-88x31.png │ ├── has-aspect-hi.png │ ├── type-check-hi.png │ ├── adv-search-props.png │ ├── adv-search-type.png │ ├── configured-form.png │ ├── configured-popup.png │ ├── specialize-type.png │ ├── unconfigured-form.png │ ├── aspects-before-i18n.png │ ├── specialize-type-hi.png │ ├── aspects-before-i18n-hi.png │ ├── configured-doc-details.png │ ├── configured-edit-props.png │ ├── change-type-before-i18n.png │ └── change-type-before-i18n-hi.png ├── actions ├── actions-tutorial │ ├── actions-tutorial-platform │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ └── alfresco │ │ │ │ │ └── module │ │ │ │ │ └── actions-tutorial-platform │ │ │ │ │ ├── messages │ │ │ │ │ └── somecoactions.properties │ │ │ │ │ ├── context │ │ │ │ │ ├── bootstrap-context.xml │ │ │ │ │ └── service-context.xml │ │ │ │ │ ├── module-context.xml │ │ │ │ │ └── log4j.properties │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── someco │ │ │ │ │ └── action │ │ │ │ │ └── executer │ │ │ │ │ ├── DisableWebFlag.java │ │ │ │ │ └── EnableWebFlag.java │ │ │ │ └── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ └── README.md │ │ ├── pom.xml │ │ └── readme.md │ ├── actions-tutorial-share │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── alfresco │ │ │ │ │ ├── module │ │ │ │ │ │ └── actions-tutorial-share │ │ │ │ │ │ │ └── log4j.properties │ │ │ │ │ └── web-extension │ │ │ │ │ │ ├── site-webscripts │ │ │ │ │ │ └── org │ │ │ │ │ │ │ └── alfresco │ │ │ │ │ │ │ └── components │ │ │ │ │ │ │ └── rules │ │ │ │ │ │ │ ├── rule-details.get.head.ftl │ │ │ │ │ │ │ └── rule-edit.get.head.ftl │ │ │ │ │ │ └── messages │ │ │ │ │ │ └── scActions.properties │ │ │ │ └── META-INF │ │ │ │ │ └── resources │ │ │ │ │ └── components │ │ │ │ │ └── documentlibrary │ │ │ │ │ ├── actions │ │ │ │ │ ├── someco-website-16.png │ │ │ │ │ ├── someco-create-website-16.png │ │ │ │ │ └── someco-delete-website-16.png │ │ │ │ │ └── indicators │ │ │ │ │ └── someco-website-16.png │ │ │ │ └── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ └── README.md │ │ └── pom.xml │ ├── actions-tutorial-platform-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ ├── license │ │ │ └── README.md │ │ │ └── Dockerfile │ ├── actions-tutorial-share-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ └── Dockerfile │ └── docker │ │ └── docker-compose.yml └── tutorial │ └── images │ ├── cc-by-sa-88x31.png │ ├── rule-actions-share.png │ ├── enable-disable-same-time.png │ ├── indicators-browse-share.png │ ├── ui-actions-browse-share.png │ ├── ui-actions-details-share.png │ ├── move-replaced-config-share.png │ ├── ui-actions-disable-browse-share.png │ ├── ui-actions-disable-details-share.png │ └── unconfigured-move-replaced-param.png ├── workflow ├── workflow-tutorial │ ├── workflow-tutorial-share │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ └── alfresco │ │ │ │ │ ├── web-extension │ │ │ │ │ ├── messages │ │ │ │ │ │ └── scWorkflow.properties │ │ │ │ │ └── workflow-tutorial-share-slingshot-application-context.xml │ │ │ │ │ └── module │ │ │ │ │ └── workflow-tutorial-share │ │ │ │ │ └── log4j.properties │ │ │ │ └── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ └── README.md │ │ ├── readme.md │ │ └── pom.xml │ ├── workflow-tutorial-platform │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ └── alfresco │ │ │ │ │ ├── extension │ │ │ │ │ └── templates │ │ │ │ │ │ └── webscripts │ │ │ │ │ │ └── com │ │ │ │ │ │ └── someco │ │ │ │ │ │ └── bpm │ │ │ │ │ │ ├── review.get.html.ftl │ │ │ │ │ │ └── review.get.desc.xml │ │ │ │ │ └── module │ │ │ │ │ └── workflow-tutorial-platform │ │ │ │ │ ├── module-context.xml │ │ │ │ │ └── log4j.properties │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── someco │ │ │ │ │ └── model │ │ │ │ │ └── SomeCoWorkflowModel.java │ │ │ │ └── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ └── README.md │ │ ├── pom.xml │ │ └── readme.md │ ├── workflow-tutorial-platform-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ ├── license │ │ │ └── README.md │ │ │ └── Dockerfile │ ├── workflow-tutorial-share-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ └── Dockerfile │ └── docker │ │ └── docker-compose.yml └── tutorial │ └── images │ ├── cc-by-sa-88x31.png │ ├── hello-world-bpmn.png │ ├── hello-world-fork.png │ ├── upload-process.png │ ├── workflow-console.png │ ├── omg-pizza-example.png │ ├── greeting-in-the-log.png │ ├── hello-world-ui-bpmn.png │ ├── start-workflow-form.png │ ├── start-workflow-list.png │ ├── user-task-properties.png │ ├── approval-result-in-log.png │ ├── hello-world-log-output.png │ ├── hello-world-properties.png │ ├── my-tasks-dashlet-empty.png │ ├── publish-whitepaper-bpmn.png │ ├── start-event-properties.png │ ├── hello-world-fork-log-output.png │ ├── reviewer-email-notification.png │ ├── hello-world-process-properties.png │ └── workflow-console-start-workflow.png ├── behaviors ├── behavior-tutorial │ ├── behavior-tutorial-platform │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── META-INF │ │ │ │ │ └── resources │ │ │ │ │ │ └── test.html │ │ │ │ └── alfresco │ │ │ │ │ ├── extension │ │ │ │ │ └── templates │ │ │ │ │ │ └── webscripts │ │ │ │ │ │ └── com │ │ │ │ │ │ └── someco │ │ │ │ │ │ └── ratings │ │ │ │ │ │ ├── rating-test.get.html.ftl │ │ │ │ │ │ ├── rating-test.get.desc.xml │ │ │ │ │ │ └── rating-test.get.js │ │ │ │ │ └── module │ │ │ │ │ └── behavior-tutorial-platform │ │ │ │ │ ├── messages │ │ │ │ │ └── scRatingsModel.properties │ │ │ │ │ ├── scripts │ │ │ │ │ ├── onCreateRating.js │ │ │ │ │ └── onDeleteRating.js │ │ │ │ │ ├── context │ │ │ │ │ └── bootstrap-context.xml │ │ │ │ │ ├── module-context.xml │ │ │ │ │ └── log4j.properties │ │ │ │ ├── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ │ └── README.md │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── someco │ │ │ │ └── model │ │ │ │ └── SomeCoRatingsModel.java │ │ └── pom.xml │ ├── behavior-tutorial-share │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── alfresco │ │ │ │ │ ├── module │ │ │ │ │ │ └── behavior-tutorial-share │ │ │ │ │ │ │ └── log4j.properties │ │ │ │ │ └── web-extension │ │ │ │ │ │ ├── messages │ │ │ │ │ │ └── scRatingsModel.properties │ │ │ │ │ │ └── behavior-tutorial-share-context.xml │ │ │ │ └── META-INF │ │ │ │ │ └── share-config-custom.xml │ │ │ │ └── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ └── README.md │ │ └── pom.xml │ ├── behavior-tutorial-platform-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ ├── license │ │ │ └── README.md │ │ │ └── Dockerfile │ ├── behavior-tutorial-share-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ └── Dockerfile │ └── docker │ │ └── docker-compose.yml └── tutorial │ └── images │ ├── cc-by-sa-88x31.png │ ├── content-with-test-ratings.png │ └── someco-model-with-ratings.png ├── webscripts ├── webscripts-tutorial │ ├── webscripts-tutorial-platform │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── alfresco │ │ │ │ │ ├── extension │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ └── webscripts │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── someco │ │ │ │ │ │ │ ├── helloworld.get.js │ │ │ │ │ │ │ ├── helloworld.get.html.ftl │ │ │ │ │ │ │ ├── ratings │ │ │ │ │ │ │ ├── rating.post.json.ftl │ │ │ │ │ │ │ ├── rating.get.json.ftl │ │ │ │ │ │ │ ├── rating.delete.html.ftl │ │ │ │ │ │ │ ├── rating.post.html.ftl │ │ │ │ │ │ │ ├── rating.delete.desc.xml │ │ │ │ │ │ │ ├── rating.post.desc.xml │ │ │ │ │ │ │ ├── rating.get.desc.xml │ │ │ │ │ │ │ ├── rating.delete.js │ │ │ │ │ │ │ └── rating.get.js │ │ │ │ │ │ │ ├── helloworld.get.desc.xml │ │ │ │ │ │ │ └── whitepapers │ │ │ │ │ │ │ ├── whitepapers.get.desc.xml │ │ │ │ │ │ │ ├── whitepapers.get.js │ │ │ │ │ │ │ └── whitepapers.get.json.ftl │ │ │ │ │ └── module │ │ │ │ │ │ └── webscripts-tutorial-platform │ │ │ │ │ │ ├── module-context.xml │ │ │ │ │ │ ├── context │ │ │ │ │ │ └── service-context.xml │ │ │ │ │ │ └── log4j.properties │ │ │ │ └── META-INF │ │ │ │ │ └── resources │ │ │ │ │ ├── images │ │ │ │ │ └── someco │ │ │ │ │ │ └── stars │ │ │ │ │ │ ├── rating_off.gif │ │ │ │ │ │ ├── rating_on.gif │ │ │ │ │ │ ├── rating_half.gif │ │ │ │ │ │ └── rating_over.gif │ │ │ │ │ └── scripts │ │ │ │ │ └── someco │ │ │ │ │ └── rating-script.js │ │ │ │ └── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ └── README.md │ │ ├── pom.xml │ │ └── readme.md │ ├── webscripts-tutorial-share │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── alfresco │ │ │ │ │ ├── module │ │ │ │ │ │ └── webscripts-tutorial-share │ │ │ │ │ │ │ └── log4j.properties │ │ │ │ │ └── web-extension │ │ │ │ │ │ ├── messages │ │ │ │ │ │ └── webscripts-tutorial-share.properties │ │ │ │ │ │ ├── site-webscripts │ │ │ │ │ │ └── org │ │ │ │ │ │ │ └── alfresco │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ └── webscripts-tutorial-share-slingshot-application-context.xml │ │ │ │ └── META-INF │ │ │ │ │ └── share-config-custom.xml │ │ │ │ └── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ └── README.md │ │ └── pom.xml │ ├── webscripts-tutorial-platform-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ ├── license │ │ │ └── README.md │ │ │ └── Dockerfile │ └── webscripts-tutorial-share-docker │ │ └── src │ │ └── main │ │ └── docker │ │ └── Dockerfile └── tutorial │ └── images │ ├── rating-html.png │ ├── whitepapers.png │ ├── cc-by-sa-88x31.png │ ├── someco-whitepapers.png │ └── someco-whitepapers-detail.png ├── maven-sdk ├── maven-sdk-tutorial │ ├── maven-sdk-tutorial-platform │ │ ├── src │ │ │ ├── main │ │ │ │ ├── resources │ │ │ │ │ ├── META-INF │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ └── test.html │ │ │ │ │ └── alfresco │ │ │ │ │ │ ├── extension │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ └── webscripts │ │ │ │ │ │ │ └── alfresco │ │ │ │ │ │ │ └── tutorials │ │ │ │ │ │ │ ├── helloworld.get.html.ftl │ │ │ │ │ │ │ ├── helloworld.get.js │ │ │ │ │ │ │ └── helloworld.get.desc.xml │ │ │ │ │ │ └── module │ │ │ │ │ │ └── maven-sdk-tutorial-platform │ │ │ │ │ │ ├── log4j.properties │ │ │ │ │ │ ├── alfresco-global.properties │ │ │ │ │ │ ├── messages │ │ │ │ │ │ └── content-model.properties │ │ │ │ │ │ ├── workflow │ │ │ │ │ │ └── sample-process.bpmn20.xml │ │ │ │ │ │ ├── model │ │ │ │ │ │ └── workflow-model.xml │ │ │ │ │ │ ├── context │ │ │ │ │ │ ├── webscript-context.xml │ │ │ │ │ │ └── bootstrap-context.xml │ │ │ │ │ │ └── module-context.xml │ │ │ │ ├── assembly │ │ │ │ │ ├── file-mapping.properties │ │ │ │ │ └── web │ │ │ │ │ │ └── README.md │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── someco │ │ │ │ │ └── platformsample │ │ │ │ │ ├── Demo.java │ │ │ │ │ └── HelloWorldWebScript.java │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── someco │ │ │ │ └── platformsample │ │ │ │ └── HelloWorldWebScriptControllerTest.java │ │ └── pom.xml │ ├── maven-sdk-tutorial-share │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── alfresco │ │ │ │ │ ├── web-extension │ │ │ │ │ │ ├── site-webscripts │ │ │ │ │ │ │ ├── com │ │ │ │ │ │ │ │ └── example │ │ │ │ │ │ │ │ │ └── pages │ │ │ │ │ │ │ │ │ ├── simple-page.get.html.ftl │ │ │ │ │ │ │ │ │ ├── simple-page.get.desc.xml │ │ │ │ │ │ │ │ │ └── simple-page.get.js │ │ │ │ │ │ │ └── org │ │ │ │ │ │ │ │ └── alfresco │ │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ ├── site-data │ │ │ │ │ │ │ └── extensions │ │ │ │ │ │ │ │ └── maven-sdk-tutorial-share-example-widgets.xml │ │ │ │ │ │ ├── messages │ │ │ │ │ │ │ └── maven-sdk-tutorial-share.properties │ │ │ │ │ │ └── maven-sdk-tutorial-share-slingshot-application-context.xml │ │ │ │ │ └── module │ │ │ │ │ │ └── maven-sdk-tutorial-share │ │ │ │ │ │ └── log4j.properties │ │ │ │ └── META-INF │ │ │ │ │ └── resources │ │ │ │ │ └── maven-sdk-tutorial-share │ │ │ │ │ └── js │ │ │ │ │ └── tutorials │ │ │ │ │ └── widgets │ │ │ │ │ ├── i18n │ │ │ │ │ └── TemplateWidget.properties │ │ │ │ │ ├── templates │ │ │ │ │ └── TemplateWidget.html │ │ │ │ │ ├── css │ │ │ │ │ └── TemplateWidget.css │ │ │ │ │ └── TemplateWidget.js │ │ │ │ └── assembly │ │ │ │ ├── file-mapping.properties │ │ │ │ └── web │ │ │ │ └── README.md │ │ └── pom.xml │ ├── maven-sdk-tutorial-platform-docker │ │ └── src │ │ │ └── main │ │ │ └── docker │ │ │ ├── license │ │ │ └── README.md │ │ │ └── Dockerfile │ ├── .gitignore │ └── maven-sdk-tutorial-share-docker │ │ └── src │ │ └── main │ │ └── docker │ │ └── Dockerfile └── tutorial │ └── images │ ├── cc-by-sa-88x31.png │ ├── new-maven-project.png │ ├── dependency-hierarchy.png │ ├── import-maven-project.png │ ├── select-amp-archetype.png │ ├── select-an-archetype.png │ ├── select-maven-project.png │ ├── add-archetype-catalog.png │ ├── plugin-execution-problem.png │ ├── setup-plugin-connectors.png │ └── specify-archetype-params.png ├── tutorial-common ├── gen.sh ├── header.html ├── footer.html └── readme.md └── README.md /content/content-tutorial-cmis/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-share/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-share/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-share/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | alf_data_dev 3 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/resources/META-INF/resources/test.html: -------------------------------------------------------------------------------- 1 | Test 123 2 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/META-INF/resources/test.html: -------------------------------------------------------------------------------- 1 | Test 123 -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/META-INF/resources/test.html: -------------------------------------------------------------------------------- 1 | Test 123 2 | -------------------------------------------------------------------------------- /content/tutorial/images/model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/model.png -------------------------------------------------------------------------------- /content/tutorial/images/model.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/model.ppt -------------------------------------------------------------------------------- /content/tutorial/images/add-aspect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/add-aspect.png -------------------------------------------------------------------------------- /content/tutorial/images/cmis-assocs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/cmis-assocs.png -------------------------------------------------------------------------------- /content/tutorial/images/has-aspect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/has-aspect.png -------------------------------------------------------------------------------- /content/tutorial/images/type-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/type-check.png -------------------------------------------------------------------------------- /actions/tutorial/images/cc-by-sa-88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/cc-by-sa-88x31.png -------------------------------------------------------------------------------- /content/tutorial/images/add-aspect-hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/add-aspect-hi.png -------------------------------------------------------------------------------- /content/tutorial/images/cc-by-sa-88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/cc-by-sa-88x31.png -------------------------------------------------------------------------------- /content/tutorial/images/has-aspect-hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/has-aspect-hi.png -------------------------------------------------------------------------------- /content/tutorial/images/type-check-hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/type-check-hi.png -------------------------------------------------------------------------------- /webscripts/tutorial/images/rating-html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/webscripts/tutorial/images/rating-html.png -------------------------------------------------------------------------------- /webscripts/tutorial/images/whitepapers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/webscripts/tutorial/images/whitepapers.png -------------------------------------------------------------------------------- /behaviors/tutorial/images/cc-by-sa-88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/behaviors/tutorial/images/cc-by-sa-88x31.png -------------------------------------------------------------------------------- /content/tutorial/images/adv-search-props.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/adv-search-props.png -------------------------------------------------------------------------------- /content/tutorial/images/adv-search-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/adv-search-type.png -------------------------------------------------------------------------------- /content/tutorial/images/configured-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/configured-form.png -------------------------------------------------------------------------------- /content/tutorial/images/configured-popup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/configured-popup.png -------------------------------------------------------------------------------- /content/tutorial/images/specialize-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/specialize-type.png -------------------------------------------------------------------------------- /content/tutorial/images/unconfigured-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/unconfigured-form.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/cc-by-sa-88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/cc-by-sa-88x31.png -------------------------------------------------------------------------------- /webscripts/tutorial/images/cc-by-sa-88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/webscripts/tutorial/images/cc-by-sa-88x31.png -------------------------------------------------------------------------------- /workflow/tutorial/images/cc-by-sa-88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/cc-by-sa-88x31.png -------------------------------------------------------------------------------- /workflow/tutorial/images/hello-world-bpmn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/hello-world-bpmn.png -------------------------------------------------------------------------------- /workflow/tutorial/images/hello-world-fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/hello-world-fork.png -------------------------------------------------------------------------------- /workflow/tutorial/images/upload-process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/upload-process.png -------------------------------------------------------------------------------- /workflow/tutorial/images/workflow-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/workflow-console.png -------------------------------------------------------------------------------- /actions/tutorial/images/rule-actions-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/rule-actions-share.png -------------------------------------------------------------------------------- /content/tutorial/images/aspects-before-i18n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/aspects-before-i18n.png -------------------------------------------------------------------------------- /content/tutorial/images/specialize-type-hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/specialize-type-hi.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/new-maven-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/new-maven-project.png -------------------------------------------------------------------------------- /workflow/tutorial/images/omg-pizza-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/omg-pizza-example.png -------------------------------------------------------------------------------- /content/tutorial/images/aspects-before-i18n-hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/aspects-before-i18n-hi.png -------------------------------------------------------------------------------- /content/tutorial/images/configured-doc-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/configured-doc-details.png -------------------------------------------------------------------------------- /content/tutorial/images/configured-edit-props.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/configured-edit-props.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/dependency-hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/dependency-hierarchy.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/import-maven-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/import-maven-project.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/select-amp-archetype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/select-amp-archetype.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/select-an-archetype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/select-an-archetype.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/select-maven-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/select-maven-project.png -------------------------------------------------------------------------------- /webscripts/tutorial/images/someco-whitepapers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/webscripts/tutorial/images/someco-whitepapers.png -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/helloworld.get.js: -------------------------------------------------------------------------------- 1 | model.foo = "bar"; -------------------------------------------------------------------------------- /workflow/tutorial/images/greeting-in-the-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/greeting-in-the-log.png -------------------------------------------------------------------------------- /workflow/tutorial/images/hello-world-ui-bpmn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/hello-world-ui-bpmn.png -------------------------------------------------------------------------------- /workflow/tutorial/images/start-workflow-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/start-workflow-form.png -------------------------------------------------------------------------------- /workflow/tutorial/images/start-workflow-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/start-workflow-list.png -------------------------------------------------------------------------------- /workflow/tutorial/images/user-task-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/user-task-properties.png -------------------------------------------------------------------------------- /actions/tutorial/images/enable-disable-same-time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/enable-disable-same-time.png -------------------------------------------------------------------------------- /actions/tutorial/images/indicators-browse-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/indicators-browse-share.png -------------------------------------------------------------------------------- /actions/tutorial/images/ui-actions-browse-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/ui-actions-browse-share.png -------------------------------------------------------------------------------- /actions/tutorial/images/ui-actions-details-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/ui-actions-details-share.png -------------------------------------------------------------------------------- /content/tutorial/images/change-type-before-i18n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/change-type-before-i18n.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/add-archetype-catalog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/add-archetype-catalog.png -------------------------------------------------------------------------------- /workflow/tutorial/images/approval-result-in-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/approval-result-in-log.png -------------------------------------------------------------------------------- /workflow/tutorial/images/hello-world-log-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/hello-world-log-output.png -------------------------------------------------------------------------------- /workflow/tutorial/images/hello-world-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/hello-world-properties.png -------------------------------------------------------------------------------- /workflow/tutorial/images/my-tasks-dashlet-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/my-tasks-dashlet-empty.png -------------------------------------------------------------------------------- /workflow/tutorial/images/publish-whitepaper-bpmn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/publish-whitepaper-bpmn.png -------------------------------------------------------------------------------- /workflow/tutorial/images/start-event-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/start-event-properties.png -------------------------------------------------------------------------------- /actions/tutorial/images/move-replaced-config-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/move-replaced-config-share.png -------------------------------------------------------------------------------- /behaviors/tutorial/images/content-with-test-ratings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/behaviors/tutorial/images/content-with-test-ratings.png -------------------------------------------------------------------------------- /behaviors/tutorial/images/someco-model-with-ratings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/behaviors/tutorial/images/someco-model-with-ratings.png -------------------------------------------------------------------------------- /content/tutorial/images/change-type-before-i18n-hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/content/tutorial/images/change-type-before-i18n-hi.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/plugin-execution-problem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/plugin-execution-problem.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/setup-plugin-connectors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/setup-plugin-connectors.png -------------------------------------------------------------------------------- /maven-sdk/tutorial/images/specify-archetype-params.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/maven-sdk/tutorial/images/specify-archetype-params.png -------------------------------------------------------------------------------- /webscripts/tutorial/images/someco-whitepapers-detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/webscripts/tutorial/images/someco-whitepapers-detail.png -------------------------------------------------------------------------------- /workflow/tutorial/images/hello-world-fork-log-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/hello-world-fork-log-output.png -------------------------------------------------------------------------------- /workflow/tutorial/images/reviewer-email-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/reviewer-email-notification.png -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/resources/alfresco/module/actions-tutorial-share/log4j.properties: -------------------------------------------------------------------------------- 1 | # Add here module-specific custom log4j.properties configuration -------------------------------------------------------------------------------- /actions/tutorial/images/ui-actions-disable-browse-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/ui-actions-disable-browse-share.png -------------------------------------------------------------------------------- /actions/tutorial/images/ui-actions-disable-details-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/ui-actions-disable-details-share.png -------------------------------------------------------------------------------- /actions/tutorial/images/unconfigured-move-replaced-param.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/tutorial/images/unconfigured-move-replaced-param.png -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/alfresco/web-extension/site-webscripts/com/example/pages/simple-page.get.html.ftl: -------------------------------------------------------------------------------- 1 | <@processJsonModel group="share"/> -------------------------------------------------------------------------------- /workflow/tutorial/images/hello-world-process-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/hello-world-process-properties.png -------------------------------------------------------------------------------- /workflow/tutorial/images/workflow-console-start-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/workflow/tutorial/images/workflow-console-start-workflow.png -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-share/src/main/resources/alfresco/module/behavior-tutorial-share/log4j.properties: -------------------------------------------------------------------------------- 1 | # Add here module-specific custom log4j.properties configuration -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/alfresco/tutorials/helloworld.get.html.ftl: -------------------------------------------------------------------------------- 1 | Message: '${fromJS}' '${fromJava}' -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/alfresco/tutorials/helloworld.get.js: -------------------------------------------------------------------------------- 1 | model["fromJS"] = "Hello from JS!"; 2 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/alfresco/module/maven-sdk-tutorial-share/log4j.properties: -------------------------------------------------------------------------------- 1 | # Add here module-specific custom log4j.properties configuration -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share/src/main/resources/alfresco/module/webscripts-tutorial-share/log4j.properties: -------------------------------------------------------------------------------- 1 | # Add here module-specific custom log4j.properties configuration -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/module/maven-sdk-tutorial-platform/log4j.properties: -------------------------------------------------------------------------------- 1 | # Add here module-specific custom log4j.properties configuration -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/META-INF/resources/maven-sdk-tutorial-share/js/tutorials/widgets/i18n/TemplateWidget.properties: -------------------------------------------------------------------------------- 1 | hello-label=Hello from i18n 2 | 3 | 4 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/META-INF/resources/maven-sdk-tutorial-share/js/tutorials/widgets/templates/TemplateWidget.html: -------------------------------------------------------------------------------- 1 |
${greeting}
-------------------------------------------------------------------------------- /tutorial-common/gen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | pandoc -s --toc -c ../../tutorial-common/style.css -A ../../tutorial-common/footer.html -B ../../tutorial-common/header.html --template ../../tutorial-common/template.html tutorial.md -o tutorial.html -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/helloworld.get.html.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Hello, ${args.name}!

4 |

Foo: ${foo}

5 | 6 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/bpm/review.get.html.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Signaled ${args.id} for transition ${args.action}

4 | 5 | -------------------------------------------------------------------------------- /tutorial-common/header.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-share/src/main/resources/alfresco/web-extension/messages/scRatingsModel.properties: -------------------------------------------------------------------------------- 1 | #sc:rateable 2 | aspect.scr_rateable=SomeCo Rateable 3 | assoc.scr_ratings=Ratings 4 | prop.scr_averageRating=Average Rating 5 | prop.scr_ratingCount=# of Ratings -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/META-INF/resources/maven-sdk-tutorial-share/js/tutorials/widgets/css/TemplateWidget.css: -------------------------------------------------------------------------------- 1 | .my-template-widget { 2 | border: 1px #000000 solid; 3 | padding: 1em; 4 | width: 100px; 5 | background-color: deepskyblue; 6 | } -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating.post.json.ftl: -------------------------------------------------------------------------------- 1 | {"rating" : 2 | { 3 | "node" : "${node}", 4 | "rating" : "${rating}", 5 | "user" : "${user}" 6 | } 7 | } -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform-docker/src/main/docker/license/README.md: -------------------------------------------------------------------------------- 1 | # Enterprise License location 2 | 3 | Put the Alfresco Enterprise license file in this directory. 4 | It will then be copied into the ACS container in the 5 | $TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory. 6 | 7 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform-docker/src/main/docker/license/README.md: -------------------------------------------------------------------------------- 1 | # Enterprise License location 2 | 3 | Put the Alfresco Enterprise license file in this directory. 4 | It will then be copied into the ACS container in the 5 | $TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory. 6 | 7 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/META-INF/resources/images/someco/stars/rating_off.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/META-INF/resources/images/someco/stars/rating_off.gif -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/META-INF/resources/images/someco/stars/rating_on.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/META-INF/resources/images/someco/stars/rating_on.gif -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform-docker/src/main/docker/license/README.md: -------------------------------------------------------------------------------- 1 | # Enterprise License location 2 | 3 | Put the Alfresco Enterprise license file in this directory. 4 | It will then be copied into the ACS container in the 5 | $TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory. 6 | 7 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform-docker/src/main/docker/license/README.md: -------------------------------------------------------------------------------- 1 | # Enterprise License location 2 | 3 | Put the Alfresco Enterprise license file in this directory. 4 | It will then be copied into the ACS container in the 5 | $TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory. 6 | 7 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/META-INF/resources/images/someco/stars/rating_half.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/META-INF/resources/images/someco/stars/rating_half.gif -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/META-INF/resources/images/someco/stars/rating_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/META-INF/resources/images/someco/stars/rating_over.gif -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform-docker/src/main/docker/license/README.md: -------------------------------------------------------------------------------- 1 | # Enterprise License location 2 | 3 | Put the Alfresco Enterprise license file in this directory. 4 | It will then be copied into the ACS container in the 5 | $TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory. 6 | 7 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform-docker/src/main/docker/license/README.md: -------------------------------------------------------------------------------- 1 | # Enterprise License location 2 | 3 | Put the Alfresco Enterprise license file in this directory. 4 | It will then be copied into the ACS container in the 5 | $TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory. 6 | 7 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating.get.json.ftl: -------------------------------------------------------------------------------- 1 | {"rating" : 2 | { 3 | "average" : "${rating.average!''}", 4 | "count" : "${rating.count!''}", 5 | "user" : "${rating.user!''}" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/alfresco/web-extension/site-webscripts/com/example/pages/simple-page.get.desc.xml: -------------------------------------------------------------------------------- 1 | 2 | Simple Page 3 | Simple page definition 4 | Share 5 | /simple-page 6 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/resources/META-INF/resources/components/documentlibrary/actions/someco-website-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/actions-tutorial/actions-tutorial-share/src/main/resources/META-INF/resources/components/documentlibrary/actions/someco-website-16.png -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/src/main/resources/alfresco/module/actions-tutorial-platform/messages/somecoactions.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/actions-tutorial/actions-tutorial-platform/src/main/resources/alfresco/module/actions-tutorial-platform/messages/somecoactions.properties -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/resources/META-INF/resources/components/documentlibrary/indicators/someco-website-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/actions-tutorial/actions-tutorial-share/src/main/resources/META-INF/resources/components/documentlibrary/indicators/someco-website-16.png -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating.delete.html.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Successfully deleted ratings for node: ${args.id}

4 |

Back to Ratings

5 | 6 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/resources/META-INF/resources/components/documentlibrary/actions/someco-create-website-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/actions-tutorial/actions-tutorial-share/src/main/resources/META-INF/resources/components/documentlibrary/actions/someco-create-website-16.png -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/resources/META-INF/resources/components/documentlibrary/actions/someco-delete-website-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpotts/alfresco-developer-series/HEAD/actions/actions-tutorial/actions-tutorial-share/src/main/resources/META-INF/resources/components/documentlibrary/actions/someco-delete-website-16.png -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/helloworld.get.desc.xml: -------------------------------------------------------------------------------- 1 | 2 | Hello World 3 | Hello world web script 4 | /someco/helloworld?name={nameArgument} 5 | guest 6 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-share/src/main/resources/alfresco/web-extension/messages/scWorkflow.properties: -------------------------------------------------------------------------------- 1 | 2 | #scwf:helloName 3 | prop.scwf_helloName=Name 4 | 5 | #workflow properties 6 | workflow.scwf_helloWorldUI=Hello World UI 7 | workflow.scwf_publishWhitepaper=SC Publish Whitepaper 8 | 9 | #scwf:publishWhitepaper 10 | prop.scwf_reviewerEmail=Reviewer Email -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/resources/alfresco/web-extension/site-webscripts/org/alfresco/components/rules/rule-details.get.head.ftl: -------------------------------------------------------------------------------- 1 | <#-- PLEASE NOTE: 2 | <#-- Use of .head.ftl WebScript files has now been deprecated from WebScripts that render Share Components. --> 3 | <#-- Dependencies are now loaded through the use of the <@script> and <@link> tags in the main .html.ftl file. --> 4 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/resources/alfresco/web-extension/site-webscripts/org/alfresco/components/rules/rule-edit.get.head.ftl: -------------------------------------------------------------------------------- 1 | <#-- PLEASE NOTE: 2 | <#-- Use of .head.ftl WebScript files has now been deprecated from WebScripts that render Share Components. --> 3 | <#-- Dependencies are now loaded through the use of the <@script> and <@link> tags in the main .html.ftl file. --> 4 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/alfresco/web-extension/site-webscripts/org/alfresco/README.md: -------------------------------------------------------------------------------- 1 | ## If you are overriding out-of-the-box Alfresco web scripts, put these files here 2 | ## in the correct org.alfresco... package. 3 | ## If you are defining a new custom web script, add it under 4 | ## resources/alfresco/web-extension/site-webscripts/{your domain path}. 5 | ## 6 | 7 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share/src/main/resources/alfresco/web-extension/messages/webscripts-tutorial-share.properties: -------------------------------------------------------------------------------- 1 | # This file should contain messages and labels specific to this share extension 2 | # Put here things like: 3 | # Content Model Aspect and Type Labels 4 | # Form field labels 5 | # Doc lib Action labels and messages 6 | # Doc Lib Action Forms labels 7 | # 8 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating.post.html.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Successfully added rating:

4 |

Node:${node}

5 |

Rating:${rating}

6 |

User:${user}

7 |

Show rating

8 | 9 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share/src/main/resources/alfresco/web-extension/site-webscripts/org/alfresco/README.md: -------------------------------------------------------------------------------- 1 | ## If you are overriding out-of-the-box Alfresco web scripts, put these files here 2 | ## in the correct org.alfresco... package. 3 | ## If you are defining a new custom web script, add it under 4 | ## resources/alfresco/web-extension/site-webscripts/{your domain path}. 5 | ## 6 | 7 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/src/main/java/com/someco/model/SomeCoWorkflowModel.java: -------------------------------------------------------------------------------- 1 | package com.someco.model; 2 | 3 | public interface SomeCoWorkflowModel { 4 | 5 | // Types 6 | public static final String NAMESPACE_SOMECO_WORKFLOW_CONTENT_MODEL = "http://www.someco.com/model/workflow/1.0"; 7 | 8 | // Properties 9 | public static final String PROP_APPROVE_REJECT_OUTCOME = "approveRejectOutcome"; 10 | 11 | } -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/alfresco/tutorials/helloworld.get.desc.xml: -------------------------------------------------------------------------------- 1 | 2 | Hello World Sample Webscript 3 | Hands back a greeting 4 | /sample/helloworld 5 | user 6 | 7 | sample 8 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating-test.get.html.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | Success! 4 | 5 | 6 |

Created test rating with a value of ${ratingValue} for ${document.name} (${document.nodeRef}).

7 |

Do it again. 8 | 9 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating-test.get.desc.xml: -------------------------------------------------------------------------------- 1 | 2 | SomeCo Rating Test 3 | Test the rating behavior 4 | /someco/rating-test?nodeRef={nodeRef} 5 | argument 6 | user 7 | required 8 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/resources/alfresco/module/content-tutorial-platform/alfresco-global.properties: -------------------------------------------------------------------------------- 1 | ## This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module. 2 | ## Define default values for all properties here. 3 | ## System Administrators can override these values in environment specific configurations in 4 | ## alfresco/tomcat/shared/classes/alfresco-global.properties. 5 | ## 6 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/module/maven-sdk-tutorial-platform/alfresco-global.properties: -------------------------------------------------------------------------------- 1 | ## This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module. 2 | ## Define default values for all properties here. 3 | ## System Administrators can override these values in environment specific configurations in 4 | ## alfresco/tomcat/shared/classes/alfresco-global.properties. 5 | ## 6 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/bpm/review.get.desc.xml: -------------------------------------------------------------------------------- 1 | 2 | BPM Review 3 | Review and approve a BPM task 4 | /someco/bpm/review?id={idArgument}&action={transArgument} 5 | extension 6 | guest 7 | required 8 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/module/maven-sdk-tutorial-platform/messages/content-model.properties: -------------------------------------------------------------------------------- 1 | # This file should contain content model labels 2 | 3 | acme_contentModel.type.acme_document.title=ACME Document 4 | acme_contentModel.aspect.acme_securityClassified.title=ACME Security Classified 5 | acme_contentModel.property.acme_documentId.title=Document Id 6 | acme_contentModel.property.acme_securityClassification.title=Security Classification 7 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating.delete.desc.xml: -------------------------------------------------------------------------------- 1 | 2 | Delete Content Ratings 3 | Deletes all ratings for the specified node 4 | /someco/rating/delete?id={id} 5 | /someco/rating/delete.html?id={id} 6 | extension 7 | admin 8 | required 9 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/src/main/java/com/someco/action/executer/DisableWebFlag.java: -------------------------------------------------------------------------------- 1 | package com.someco.action.executer; 2 | 3 | import org.alfresco.service.cmr.action.Action; 4 | import org.alfresco.service.cmr.repository.NodeRef; 5 | 6 | public class DisableWebFlag extends SetWebFlag { 7 | @Override 8 | protected void executeImpl(Action action, NodeRef actionedUponNodeRef) { 9 | action.setParameterValue(SetWebFlag.PARAM_ACTIVE, false); 10 | super.executeImpl(action, actionedUponNodeRef); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/src/main/java/com/someco/action/executer/EnableWebFlag.java: -------------------------------------------------------------------------------- 1 | package com.someco.action.executer; 2 | 3 | import org.alfresco.service.cmr.action.Action; 4 | import org.alfresco.service.cmr.repository.NodeRef; 5 | 6 | public class EnableWebFlag extends SetWebFlag { 7 | @Override 8 | protected void executeImpl(Action action, NodeRef actionedUponNodeRef) { 9 | action.setParameterValue(SetWebFlag.PARAM_ACTIVE, true); 10 | super.executeImpl(action, actionedUponNodeRef); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/alfresco/module/behavior-tutorial-platform/messages/scRatingsModel.properties: -------------------------------------------------------------------------------- 1 | #scr:rating 2 | scr_somecoratingsmodel.type.scr_rating.title=Rating 3 | scr_somecoratingsmodel.property.scr_rating.title=Rating 4 | scr_somecoratingsmodel.property.scr_rater.title=Rater 5 | 6 | #scr:rateable 7 | scr_somecoratingsmodel.aspect.scr_rateable.title=SomeCo Rateable 8 | scr_somecoratingsmodel.property.scr_averageRating=Average Rating 9 | scr_somecoratingsmodel.association.scr_ratings.title=Ratings -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/resources/alfresco/web-extension/messages/scActions.properties: -------------------------------------------------------------------------------- 1 | #cm:replaceable 2 | aspect.cm_replaceable=Replaceable 3 | assoc.cm_replaces=Replaces 4 | 5 | #actions 6 | actions.someco.web-site=SomeCo 7 | actions.someco.web-enable=SC Enable Web 8 | actions.someco.web-disable=SC Disable Web 9 | message.web-flag.enabled=Successfully enabled the SomeCo active flag 10 | message.web-flag.disabled=Successfully disabled the SomeCo active flag 11 | message.web-flag.failure=Error setting the SomeCo active flag -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating.post.desc.xml: -------------------------------------------------------------------------------- 1 | 2 | Post Content Rating 3 | Sets rating data for the specified node 4 | /someco/rating 5 | /someco/rating.json 6 | /someco/rating.html 7 | extension 8 | guest 9 | required 10 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/whitepapers/whitepapers.get.desc.xml: -------------------------------------------------------------------------------- 1 | 2 | Get all whitepapers 3 | Returns a list of active whitepapers 4 | /someco/whitepapers 5 | /someco/whitepapers.json 6 | /someco/whitepapers.html 7 | extension 8 | guest 9 | none 10 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating.get.desc.xml: -------------------------------------------------------------------------------- 1 | 2 | Get Content Rating 3 | Returns rating data for the specified node 4 | /someco/rating?id={id}&user={user?} 5 | /someco/rating.json?id={id}&user={user?} 6 | /someco/rating.html?id={id}&user={user?} 7 | extension 8 | guest 9 | none 10 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share/src/main/resources/META-INF/share-config-custom.xml: -------------------------------------------------------------------------------- 1 | 12 | 13 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/.gitignore: -------------------------------------------------------------------------------- 1 | **.log* 2 | 3 | # Maven 4 | target/ 5 | pom.xml.tag 6 | pom.xml.releaseBackup 7 | pom.xml.versionsBackup 8 | pom.xml.next 9 | release.properties 10 | dependency-reduced-pom.xml 11 | buildNumber.properties 12 | .mvn/timing.properties 13 | .mvn/wrapper/maven-wrapper.jar 14 | 15 | # Eclipse 16 | .metadata 17 | .project 18 | .classpath 19 | bin/ 20 | tmp/ 21 | *.tmp 22 | .settings/ 23 | .loadpath 24 | .recommenders 25 | 26 | # IntelliJ IDEA 27 | **.idea 28 | **.iml 29 | 30 | # Visual Studio Code 31 | .vscode/* 32 | !.vscode/settings.json 33 | !.vscode/tasks.json 34 | !.vscode/launch.json 35 | !.vscode/extensions.json 36 | 37 | # macOS 38 | *.DS_Store -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-share/src/main/resources/alfresco/web-extension/behavior-tutorial-share-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | alfresco.web-extension.messages.scRatingsModel 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-share/src/main/resources/alfresco/web-extension/workflow-tutorial-share-slingshot-application-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | alfresco.web-extension.messages.scWorkflow 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-share/src/main/resources/alfresco/web-extension/messages/scModel.properties: -------------------------------------------------------------------------------- 1 | #sc:doc 2 | type.sc_doc=SomeCo Doc 3 | assoc.sc_relatedDocuments=Related Document 4 | 5 | #sc:whitepaper 6 | type.sc_whitepaper=SomeCo Whitepaper 7 | search.form.desc.sc_whitepaper=Search for SomeCo Whitepapers 8 | 9 | #sc:marketingDoc 10 | type.sc_marketingDoc=SomeCo Marketing Doc 11 | search.form.desc.sc_marketingDoc=Search for SomeCo Marketing Docs 12 | prop.sc_campaign=Campaign 13 | prop.sc_campaignOwner=Campaign Owner 14 | 15 | #sc:webable 16 | aspect.sc_webable=SomeCo Webable 17 | prop.sc_published=Published 18 | prop.sc_isActive=Active? 19 | 20 | #sc:productRelated 21 | aspect.sc_productRelated=SomeCo Product Related 22 | prop.sc_product=Product 23 | prop.sc_version=Version 24 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.share.image}:${alfresco.share.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | # Copy Dockerfile to avoid an error if no JARs exist 6 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/ 7 | 8 | # Copy Dockerfile to avoid an error if no AMPs exist 9 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/ 10 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 11 | $TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force 12 | 13 | COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension 14 | 15 | COPY log4j.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes 16 | COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-share-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.share.image}:${alfresco.share.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | # Copy Dockerfile to avoid an error if no JARs exist 6 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/ 7 | 8 | # Copy Dockerfile to avoid an error if no AMPs exist 9 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/ 10 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 11 | $TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force 12 | 13 | COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension 14 | 15 | COPY log4j.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes 16 | COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating.delete.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | if (args.id == null || args.id.length == 0) { 4 | logger.log("ID arg not set"); 5 | status.code = 400; 6 | status.message = "Node ID has not been provided"; 7 | status.redirect = true; 8 | } else { 9 | logger.log("Getting current node"); 10 | var curNode = search.findNode("workspace://SpacesStore/" + args.id); 11 | if (curNode == null) { 12 | logger.log("Node not found"); 13 | status.code = 404; 14 | status.message = "No node found for id:" + args.id; 15 | status.redirect = true; 16 | } else { 17 | deleteRatings(curNode); 18 | model.id = args.id; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-share-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.share.image}:${alfresco.share.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | # Copy Dockerfile to avoid an error if no JARs exist 6 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/ 7 | 8 | # Copy Dockerfile to avoid an error if no AMPs exist 9 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/ 10 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 11 | $TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force 12 | 13 | COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension 14 | 15 | COPY log4j.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes 16 | COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-share-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.share.image}:${alfresco.share.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | # Copy Dockerfile to avoid an error if no JARs exist 6 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/ 7 | 8 | # Copy Dockerfile to avoid an error if no AMPs exist 9 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/ 10 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 11 | $TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force 12 | 13 | COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension 14 | 15 | COPY log4j.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes 16 | COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.share.image}:${alfresco.share.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | # Copy Dockerfile to avoid an error if no JARs exist 6 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/ 7 | 8 | # Copy Dockerfile to avoid an error if no AMPs exist 9 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/ 10 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 11 | $TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force 12 | 13 | COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension 14 | 15 | COPY log4j.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes 16 | COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.share.image}:${alfresco.share.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | # Copy Dockerfile to avoid an error if no JARs exist 6 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/ 7 | 8 | # Copy Dockerfile to avoid an error if no AMPs exist 9 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/ 10 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 11 | $TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force 12 | 13 | COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension 14 | 15 | COPY log4j.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes 16 | COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/alfresco/web-extension/site-data/extensions/maven-sdk-tutorial-share-example-widgets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | maven-sdk-tutorial-share - Example Aikau Widgets 5 | 1.0 6 | true 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-share/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-share/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating.get.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | if (args.id == null || args.id.length == 0) { 4 | logger.log("ID arg not set"); 5 | status.code = 400; 6 | status.message = "Node ID has not been provided"; 7 | status.redirect = true; 8 | } else { 9 | logger.log("Getting current node"); 10 | var curNode = search.findNode("workspace://SpacesStore/" + args.id); 11 | if (curNode == null) { 12 | logger.log("Node not found"); 13 | status.code = 404; 14 | status.message = "No node found for id:" + args.id; 15 | status.redirect = true; 16 | } else { 17 | logger.log("Setting model rating data"); 18 | model.rating = getRating(curNode, args.user); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-share/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share/src/main/assembly/file-mapping.properties: -------------------------------------------------------------------------------- 1 | # Custom AMP to WAR location mappings 2 | 3 | # 4 | # The following property can be used to include the standard set of mappings. 5 | # The contents of this file will override any defaults. The default is 6 | # 'true', i.e. the default mappings will be augmented or modified by values in 7 | # this file. 8 | # 9 | # Default mappings are: 10 | # 11 | # /config=/WEB-INF/classes 12 | # /lib=/WEB-INF/lib 13 | # /licenses=/WEB-INF/licenses 14 | # /web/jsp=/jsp 15 | # /web/css=/css 16 | # /web/images=/images 17 | # /web/scripts=/scripts 18 | # /web/php=/php 19 | # 20 | include.default=true 21 | 22 | # 23 | # Custom mappings. If 'include.default' is false, then this is the complete set. 24 | # Map /web to / in AMP so we can override things like favicon.ico 25 | # 26 | /web=/ 27 | 28 | -------------------------------------------------------------------------------- /tutorial-common/footer.html: -------------------------------------------------------------------------------- 1 |

12 |
13 |
14 | Fork me on GitHub 15 |
16 |
17 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Alfresco.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-platform 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Alfresco.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-platform 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Share.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-share 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources//* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Alfresco.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-platform 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-share/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Share.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-share 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources//* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Alfresco.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-platform 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-share/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Share.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-share 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources//* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Alfresco.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-platform 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Share.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-share 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources//* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Alfresco.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-platform 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-share/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Share.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-share 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources//* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/META-INF/resources/maven-sdk-tutorial-share/js/tutorials/widgets/TemplateWidget.js: -------------------------------------------------------------------------------- 1 | define(["dojo/_base/declare", 2 | "dijit/_WidgetBase", 3 | "alfresco/core/Core", 4 | "dijit/_TemplatedMixin", 5 | "dojo/text!./templates/TemplateWidget.html" 6 | ], 7 | function(declare, _Widget, Core, _Templated, template) { 8 | return declare([_Widget, Core, _Templated], { 9 | templateString: template, 10 | i18nRequirements: [ {i18nFile: "./i18n/TemplateWidget.properties"} ], 11 | cssRequirements: [{cssFile:"./css/TemplateWidget.css"}], 12 | 13 | buildRendering: function example_widgets_TemplateWidget__buildRendering() { 14 | this.greeting = this.message('hello-label'); 15 | 16 | this.inherited(arguments); 17 | 18 | } 19 | }); 20 | }); -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share/src/main/assembly/web/README.md: -------------------------------------------------------------------------------- 1 | # Web resources that should override out-of-the-box files 2 | 3 | Put here any web resources that should override out-of-the-box 4 | web resources, such as favicon.ico. They will then end up in the 5 | */web* directory in the AMP, and applied to the WAR, and override 6 | any existing web resources in the Share.WAR. 7 | 8 | **Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT: 9 | 10 | ` 11 | 12 | ${project.groupId} 13 | some-share 14 | ${project.version} 15 | amp 16 | 17 | ` 18 | 19 | **Important**. New web resources should not be located here, but instead 20 | in the usual place in the *src/main/resources/META-INF/resources//* directory. 21 | 22 | 23 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/examples/ExampleBase.java: -------------------------------------------------------------------------------- 1 | package com.someco.examples; 2 | 3 | 4 | /** 5 | * This class holds common properties and methods for the example classes. 6 | */ 7 | public class ExampleBase { 8 | private String user; 9 | private String password; 10 | private String folderName; 11 | 12 | public static void doUsage(String message) { 13 | System.out.println(message); 14 | System.exit(0); 15 | } 16 | 17 | public String getPassword() { 18 | return password; 19 | } 20 | 21 | public void setPassword(String password) { 22 | this.password = password; 23 | } 24 | 25 | public String getUser() { 26 | return user; 27 | } 28 | 29 | public void setUser(String user) { 30 | this.user = user; 31 | } 32 | 33 | public String getFolderName() { 34 | return folderName; 35 | } 36 | 37 | public void setFolderName(String folderName) { 38 | this.folderName = folderName; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/src/main/resources/alfresco/module/actions-tutorial-platform/context/bootstrap-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | alfresco.module.${project.artifactId}.messages.somecoactions 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/alfresco/module/behavior-tutorial-platform/scripts/onCreateRating.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | // Check behaviour is set and the name of the behaviour 4 | if (!behaviour || (behaviour.name == null || behaviour.name != "onCreateNode")) { 5 | logger.log("The behaviour behaviour object or name has not been set correctly."); 6 | } else { 7 | logger.log("Behaviour name: " + behaviour.name); 8 | 9 | // Check the arguments 10 | if (behaviour.args == null) { 11 | logger.log("The args have not been set."); 12 | } else { 13 | if (behaviour.args.length == 1) { 14 | var childAssoc = behaviour.args[0]; 15 | logger.log("Calling compute average"); 16 | computeAverage(childAssoc); 17 | } else { 18 | logger.log("The number of arguments is incorrect."); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/alfresco/module/behavior-tutorial-platform/scripts/onDeleteRating.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | // Check behaviour is set and the name of the behaviour 4 | if (!behaviour || (behaviour.name == null || behaviour.name != "onDeleteNode")) { 5 | logger.log("The behaviour behaviour object or name has not been set correctly."); 6 | } else { 7 | logger.log("Behaviour name: " + behaviour.name); 8 | 9 | // Check the arguments 10 | if (behaviour.args == null) { 11 | logger.log("The args have not been set."); 12 | } else { 13 | if (behaviour.args.length == 2) { 14 | var childAssoc = behaviour.args[0]; 15 | logger.log("Calling compute average"); 16 | computeAverage(childAssoc); 17 | } else { 18 | logger.log("The number of arguments is incorrect."); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/java/com/someco/model/SomeCoRatingsModel.java: -------------------------------------------------------------------------------- 1 | package com.someco.model; 2 | 3 | /** 4 | * Created by jpotts, Metaversant on 4/11/18. 5 | */ 6 | public interface SomeCoRatingsModel { 7 | // Namespaces 8 | public static final String NAMESPACE_SOMECO_RATINGS_CONTENT_MODEL = "http://www.someco.com/model/ratings/1.0"; 9 | 10 | // Types 11 | public static final String TYPE_SCR_RATING = "rating"; 12 | 13 | // Aspects 14 | public static final String ASPECT_SCR_RATEABLE = "rateable"; 15 | 16 | // Properties 17 | public static final String PROP_RATING = "rating"; 18 | public static final String PROP_RATER = "rater"; 19 | public static final String PROP_AVERAGE_RATING= "averageRating"; 20 | public static final String PROP_TOTAL_RATING= "totalRating"; 21 | public static final String PROP_RATING_COUNT= "ratingCount"; 22 | 23 | // Associations 24 | public static final String ASSN_SCR_RATINGS = "ratings"; 25 | } 26 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | [ %d{yyyy/MM/dd HH:mm:ss,SSS} ][ %5p ][ %t ][ %c{1} ]%m%n 5 | ${hostName} 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/java/com/someco/model/SomeCoModel.java: -------------------------------------------------------------------------------- 1 | package com.someco.model; 2 | 3 | /** 4 | * Created by jpotts, Metaversant on 4/11/18. 5 | */ 6 | public interface SomeCoModel { 7 | 8 | // Types 9 | public static final String NAMESPACE_SOMECO_CONTENT_MODEL = "http://www.someco.com/model/content/1.0"; 10 | public static final String TYPE_SC_DOC = "doc"; 11 | public static final String TYPE_SC_WHITEPAPER = "whitepaper"; 12 | 13 | // Aspects 14 | public static final String ASPECT_SC_WEBABLE = "webable"; 15 | public static final String ASPECT_SC_PRODUCT_RELATED = "productRelated"; 16 | 17 | // Properties 18 | public static final String PROP_PRODUCT = "product"; 19 | public static final String PROP_VERSION = "version"; 20 | public static final String PROP_PUBLISHED = "published"; 21 | public static final String PROP_IS_ACTIVE = "isActive"; 22 | 23 | // Associations 24 | public static final String ASSN_RELATED_DOCUMENTS = "relatedDocuments"; 25 | } 26 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.acs.image}:${alfresco.platform.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | USER root 6 | 7 | # Copy Dockerfile to avoid an error if no JARs exist 8 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/ 9 | 10 | # Copy Dockerfile to avoid an error if no AMPs exist 11 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/ 12 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 13 | $TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force 14 | 15 | COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties 16 | COPY dev-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension 17 | COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension 18 | 19 | # Copy Dockerfile to avoid an error if no license file exists 20 | COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/ 21 | 22 | USER ${USERNAME} -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.acs.image}:${alfresco.platform.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | USER root 6 | 7 | # Copy Dockerfile to avoid an error if no JARs exist 8 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/ 9 | 10 | # Copy Dockerfile to avoid an error if no AMPs exist 11 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/ 12 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 13 | $TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force 14 | 15 | COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties 16 | COPY dev-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension 17 | COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension 18 | 19 | # Copy Dockerfile to avoid an error if no license file exists 20 | COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/ 21 | 22 | USER ${USERNAME} -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.acs.image}:${alfresco.platform.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | USER root 6 | 7 | # Copy Dockerfile to avoid an error if no JARs exist 8 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/ 9 | 10 | # Copy Dockerfile to avoid an error if no AMPs exist 11 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/ 12 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 13 | $TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force 14 | 15 | COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties 16 | COPY dev-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension 17 | COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension 18 | 19 | # Copy Dockerfile to avoid an error if no license file exists 20 | COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/ 21 | 22 | USER ${USERNAME} -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.acs.image}:${alfresco.platform.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | USER root 6 | 7 | # Copy Dockerfile to avoid an error if no JARs exist 8 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/ 9 | 10 | # Copy Dockerfile to avoid an error if no AMPs exist 11 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/ 12 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 13 | $TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force 14 | 15 | COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties 16 | COPY dev-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension 17 | COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension 18 | 19 | # Copy Dockerfile to avoid an error if no license file exists 20 | COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/ 21 | 22 | USER ${USERNAME} -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/module/maven-sdk-tutorial-platform/workflow/sample-process.bpmn20.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.acs.image}:${alfresco.platform.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | USER root 6 | 7 | # Copy Dockerfile to avoid an error if no JARs exist 8 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/ 9 | 10 | # Copy Dockerfile to avoid an error if no AMPs exist 11 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/ 12 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 13 | $TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force 14 | 15 | COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties 16 | COPY dev-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension 17 | COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension 18 | 19 | # Copy Dockerfile to avoid an error if no license file exists 20 | COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/ 21 | 22 | USER ${USERNAME} -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform-docker/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ${docker.acs.image}:${alfresco.platform.version} 2 | 3 | ARG TOMCAT_DIR=/usr/local/tomcat 4 | 5 | USER root 6 | 7 | # Copy Dockerfile to avoid an error if no JARs exist 8 | COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/ 9 | 10 | # Copy Dockerfile to avoid an error if no AMPs exist 11 | COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/ 12 | RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ 13 | $TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force 14 | 15 | COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties 16 | COPY dev-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension 17 | COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension 18 | 19 | # Copy Dockerfile to avoid an error if no license file exists 20 | COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/ 21 | 22 | USER ${USERNAME} -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/alfresco/web-extension/messages/maven-sdk-tutorial-share.properties: -------------------------------------------------------------------------------- 1 | # This file should contain messages and labels specific to this share extension 2 | # Put here things like: 3 | # Content Model Aspect and Type Labels 4 | # Form field labels 5 | # Doc lib Action labels and messages 6 | # Doc Lib Action Forms labels 7 | # 8 | 9 | # Labels for custom types and aspects 10 | # Used in "Manage Aspects" and "Change Type" dialogs 11 | # 12 | type.acme_document=ACME Document 13 | aspect.acme_securityClassified=Security Classified 14 | 15 | # View,Edit,Search,Create Form labels for types and aspects 16 | # 17 | form.set.label.acme.document= ACME Document Information 18 | form.field.label.acme.documentId=ACME Document Id 19 | form.field.label.acme.securityClassification=Security Classification 20 | 21 | # Advanced Search Form labels (only for types) 22 | # 23 | form.label.advancedsearch.acmeDocument=ACME Documents 24 | form.description.advancedsearch.acmeDocument=Search for any ACME Documents 25 | 26 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/alfresco/web-extension/site-webscripts/com/example/pages/simple-page.get.js: -------------------------------------------------------------------------------- 1 | model.jsonModel = { 2 | widgets: [{ 3 | id: "SET_PAGE_TITLE", 4 | name: "alfresco/header/SetTitle", 5 | config: { 6 | title: "This is a sample HELLO page" 7 | } 8 | }, 9 | { 10 | id: "MY_HORIZONTAL_WIDGET_LAYOUT", 11 | name: "alfresco/layout/HorizontalWidgets", 12 | config: { 13 | widgetWidth: 50, 14 | widgets: [ 15 | { 16 | id: "DEMO_SIMPLE_LOGO", 17 | name: "alfresco/logo/Logo", 18 | config: { 19 | logoClasses: "alfresco-logo-only" 20 | } 21 | }, 22 | { 23 | id: "DEMO_SIMPLE_MSG", 24 | name: "tutorials/widgets/TemplateWidget" 25 | } 26 | ] 27 | } 28 | }] 29 | }; -------------------------------------------------------------------------------- /tutorial-common/readme.md: -------------------------------------------------------------------------------- 1 | About the tutorial-common folder 2 | ================================ 3 | 4 | This folder contains resources that are used to convert the tutorial markdown into HTML. They don't have anything to do with learning about Alfresco development, so if that is your focus, ignore this directory completely. 5 | 6 | The latest versions of the tutorials already exist as html on [ECM Architect](http://ecmarchitect.com/alfresco-developer-series). 7 | 8 | If you want to generate the HTML yourself keep reading. 9 | 10 | Pre-requisites 11 | ============== 12 | 13 | You'll need to install Pandoc. Instructions are [here](http://johnmacfarlane.net/pandoc/installing.html). 14 | 15 | Steps 16 | ===== 17 | 18 | Assuming you have checked out the entire alfresco-developer-series project from GitHub, you should just be able to cd to the directory containing the markdown you want to transform, and then run: 19 | 20 | ../../tutorial-common/gen.sh 21 | 22 | That will create an HTML file in the current directory. 23 | 24 | If you want to alter the header, footer, CSS, or HTML page template, those all live in tutorial-common. -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/resources/alfresco/module/content-tutorial-platform/messages/scModel.properties: -------------------------------------------------------------------------------- 1 | #sc:doc 2 | sc_somecomodel.type.sc_doc.title=SomeCo Doc 3 | sc_somecomodel.association.sc_relatedDocuments.title=Related Documents 4 | 5 | #sc:whitepaper 6 | sc_somecomodel.type.sc_whitepaper.title=SomeCo Whitepaper 7 | sc_somecomodel.search.form.desc.sc_whitepaper.title=Search for SomeCo Whitepapers 8 | 9 | #sc:marketingDoc 10 | sc_somecomodel.type.sc_marketingDoc.title=SomeCo Marketing Doc 11 | sc_somecomodel.search.form.desc.sc_marketingDoc.title=Search for SomeCo Marketing Docs 12 | sc_somecomodel.property.sc_campaign.title=Campaign 13 | sc_somecomodel.property.sc_campaignOwner.title=Campaign Owner 14 | 15 | #sc:webable 16 | sc_somecomodel.aspect.sc_webable.title=SomeCo Webable 17 | sc_somecomodel.property.sc_published.title=Published 18 | sc_somecomodel.property.sc_isActive.title=Active? 19 | 20 | #sc:productRelated 21 | sc_somecomodel.aspect.sc_productRelated.title=SomeCo Product Related 22 | sc_somecomodel.property.sc_product.title=Product 23 | sc_somecomodel.property.sc_version.title=Version -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/ratings/rating-test.get.js: -------------------------------------------------------------------------------- 1 | var document = search.findNode(args.nodeRef); 2 | if (document == undefined) { 3 | status.code = 404; 4 | status.message = "NodeRef " + args.nodeRef + " not found."; 5 | status.redirect = true; 6 | } 7 | 8 | // add the aspect to this nodeRef if it needs it 9 | if (document.hasAspect("scr:rateable")) { 10 | logger.log("NodeRef already as aspect"); 11 | } else { 12 | logger.log("Adding rateable aspect"); 13 | document.addAspect("scr:rateable"); 14 | } 15 | 16 | // randomly pick a num b/w 1 and 5 inclusive 17 | var ratingValue = Math.floor(Math.random()*5) + 1; 18 | 19 | var props = new Array(2); 20 | props["scr:rating"] = ratingValue; 21 | props["scr:rater"] = person.properties.userName; 22 | 23 | // create a new ratings node and set its properties 24 | var ratingsNode = document.createNode("rating" + new Date().getTime(), "scr:rating", props, "scr:ratings"); 25 | ratingsNode.save(); 26 | logger.log("Ratings node saved."); 27 | 28 | model.document = document; 29 | model.ratingValue = ratingValue; -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | content-tutorial-platform 5 | Alfresco Platform/Repository JAR Module 6 | Platform/Repo JAR Module (to be included in the alfresco.war) - part of AIO - SDK 4.2 7 | 8 | jar 9 | 10 | 11 | com.someco 12 | content-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | org.apache.maven.plugins 26 | maven-assembly-plugin 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/cmis/examples/FolderFinder.java: -------------------------------------------------------------------------------- 1 | package com.someco.cmis.examples; 2 | 3 | import org.apache.chemistry.opencmis.client.api.Folder; 4 | import org.apache.chemistry.opencmis.client.api.Session; 5 | 6 | /** 7 | * This class tries to find a folder by path. 8 | * 9 | * @author jpotts 10 | */ 11 | public class FolderFinder extends CMISExampleBase { 12 | private static final String USAGE = "java FolderFinder "; 13 | 14 | public static void main(String[] args) throws Exception { 15 | if (args.length != 3) doUsage(FolderFinder.USAGE); 16 | FolderFinder ff = new FolderFinder(); 17 | ff.setUser(args[0]); 18 | ff.setPassword(args[1]); 19 | ff.doExample(args[2]); 20 | System.exit(0); 21 | } 22 | 23 | public void doExample(String folderPath) { 24 | Session session = getSession(); 25 | 26 | // Grab a reference to the folder by path 27 | // This assumes the object represented by that path is actually a folder 28 | Folder folder = (Folder) session.getObjectByPath(folderPath); 29 | 30 | System.out.println("Folder id: " + folder.getId()); 31 | 32 | } 33 | 34 | } 35 | 36 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | maven-sdk-tutorial-platform 5 | Alfresco Platform/Repository JAR Module 6 | Platform/Repo JAR Module (to be included in the alfresco.war) - part of AIO - SDK 4.0 7 | 8 | jar 9 | 10 | 11 | com.someco 12 | maven-sdk-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | org.apache.maven.plugins 26 | maven-assembly-plugin 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/whitepapers/whitepapers.get.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | function main() { 4 | logger.log("Inside whitepapers.get.js"); 5 | var whitepapers = search.luceneSearch("PATH:\"/app:company_home/cm:Someco/cm:Whitepapers/*\" +TYPE:\"{http://www.someco.com/model/content/1.0}whitepaper\" +@sc\\:isActive:true"); 6 | if (whitepapers == null || whitepapers.length == 0) { 7 | logger.log("No whitepapers found"); 8 | status.code = 404; 9 | status.message = "No whitepapers found"; 10 | status.redirect = true; 11 | } else { 12 | var whitepaperInfo = new Array(); 13 | for (i = 0; i < whitepapers.length; i++) { 14 | var whitepaper = new whitepaperEntry(whitepapers[i], getRating(whitepapers[i])); 15 | whitepaperInfo[i] = whitepaper; 16 | } 17 | model.whitepapers = whitepaperInfo; 18 | return model; 19 | } 20 | } 21 | 22 | function whitepaperEntry(whitepaper, rating) { 23 | this.whitepaper = whitepaper; 24 | this.rating = rating; 25 | } 26 | 27 | main(); 28 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/cmis/examples/FolderFinderByNameSearch.java: -------------------------------------------------------------------------------- 1 | package com.someco.cmis.examples; 2 | 3 | import org.apache.chemistry.opencmis.client.api.ItemIterable; 4 | import org.apache.chemistry.opencmis.client.api.QueryResult; 5 | 6 | public class FolderFinderByNameSearch extends CMISExampleBase { 7 | private static final String USAGE = "USAGE: java FolderChecker "; 8 | 9 | public static void main(String[] args) { 10 | if (args.length != 3) doUsage(FolderFinderByNameSearch.USAGE); 11 | FolderFinderByNameSearch fc = new FolderFinderByNameSearch(); 12 | fc.setUser(args[0]); 13 | fc.setPassword(args[1]); 14 | System.out.println("Does folder: " + args[0] + " exist? " + fc.doesFolderExist(args[0])); 15 | System.exit(0); 16 | } 17 | 18 | public boolean doesFolderExist(String folderName) { 19 | String queryString = "select cmis:objectId from cmis:folder where cmis:name = '" + folderName + "'"; 20 | ItemIterable results = getSession().query(queryString, false); 21 | if (results.getTotalNumItems() > 0) { 22 | return true; 23 | } else { 24 | return false; 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/java/com/someco/platformsample/Demo.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2017 Alfresco Software Limited. 3 | *

4 | * This file is part of the Alfresco SDK project. 5 | *

6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | *

10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | *

12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package com.someco.platformsample; 19 | 20 | /** 21 | * This class does nothing except dump some output to system.out. 22 | * This is a sample taken from Maven Alfresco SDK 23 | * 24 | * @author Derek Hulley 25 | */ 26 | public class Demo 27 | { 28 | public void init() 29 | { 30 | System.out.println("Platform JAR Module class has been loaded"); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/alfresco/module/behavior-tutorial-platform/context/bootstrap-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | alfresco/module/${project.artifactId}/model/scRatingsModel.xml 15 | 16 | 17 | 18 | 19 | alfresco/module/${project.artifactId}/messages/scRatingsModel 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/resources/alfresco/module/content-tutorial-platform/module-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/src/main/resources/alfresco/module/workflow-tutorial-platform/module-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/module/webscripts-tutorial-platform/module-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/extension/templates/webscripts/com/someco/whitepapers/whitepapers.get.json.ftl: -------------------------------------------------------------------------------- 1 | <#assign datetimeformat="EEE, dd MMM yyyy HH:mm:ss zzz"> 2 | {"whitepapers" : [ 3 | <#list whitepapers as child> 4 | { 5 | "name" : "${child.whitepaper.properties.name}", 6 | "title" : "${child.whitepaper.properties["cm:title"]!''}", 7 | "link" : "${url.serviceContext}/api/node/workspace/SpacesStore/${child.whitepaper.id}/content", 8 | "type" : "${child.whitepaper.mimetype}", 9 | "size" : "${child.whitepaper.size}", 10 | "id" : "${child.whitepaper.id}", 11 | "description" : "<#if child.whitepaper.properties["cm:description"]?exists && child.whitepaper.properties["cm:description"] != "">${child.whitepaper.properties["cm:description"]}", 12 | "pubDate" : "${child.whitepaper.properties["cm:modified"]?string(datetimeformat)}", 13 | "rating" : { 14 | "average" : "${child.rating.average!"0"}", 15 | "count" : "${child.rating.count!"0"}" 16 | } 17 | } 18 | <#if !(child.whitepaper == whitepapers?last.whitepaper)>, 19 | 20 | ] 21 | } -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | workflow-tutorial-platform 5 | Alfresco Platform/Repository JAR Module 6 | Platform/Repo JAR Module (to be included in the alfresco.war) - part of AIO - SDK 4.0 7 | 8 | jar 9 | 10 | 11 | com.someco 12 | workflow-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | org.apache.maven.plugins 27 | maven-assembly-plugin 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-share/readme.md: -------------------------------------------------------------------------------- 1 | Alfresco Custom Workflows Tutorial 2 | ================================== 3 | 4 | These sample classes and sample Alfresco extension config files accompany an article called ["Alfresco Developer Series: Advanced Workflows, 2nd Edition"](http://ecmarchitect.com). 5 | 6 | Building the source 7 | ------------------- 8 | 9 | The project leverages Maven. It does not require you to separately download the 10 | Alfresco SDK or any of its dependencies. 11 | 12 | To build the source, run: 13 | `mvn install` 14 | 15 | This will create an AMP file in the target directory. 16 | 17 | Deploying the AMP 18 | ----------------- 19 | 20 | You can deploy the AMP to your Alfresco instance. 21 | 22 | For example, if you are running Alfresco installed with the binary installer in 23 | `/opt/alfresco/4.2e-installer`, you would copy the AMP from the target directory 24 | to `/opt/alfresco/4.2e-installer/amps_share`, then run `bin/apply_amps.sh`. 25 | 26 | Alternatively, you can run: 27 | `mvn integration-test -Pamp-to-war` 28 | 29 | Which will start Alfresco on an embedded Jetty server with the AMP deployed 30 | to a WAR. If you want to change the version of the Alfresco WAR, edit the 31 | pom.xml file. 32 | 33 | You must also deploy the workflow-article-repo AMP to the Alfresco WAR. -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/cmis/examples/SomeCoCMISDataCreator.java: -------------------------------------------------------------------------------- 1 | package com.someco.cmis.examples; 2 | 3 | 4 | 5 | /** 6 | * This class creates an sc:whitepaper object in the folder identified by the root folder parameter. 7 | * This is a port of the SomeCoDataCreator class which uses the Alfresco Web Services API. This example 8 | * shows how to create instances of custom content types via CMIS including how to set custom properties 9 | * defined in a custom aspect. 10 | * 11 | * @author jpotts 12 | */ 13 | public class SomeCoCMISDataCreator extends CMISExampleBase { 14 | private static final String USAGE = "java SomeCoDataCreator "; 15 | 16 | public static void main(String[] args) throws Exception { 17 | if (args.length != 5) doUsage(SomeCoCMISDataCreator.USAGE); 18 | SomeCoCMISDataCreator sccdc = new SomeCoCMISDataCreator(); 19 | sccdc.setUser(args[0]); 20 | sccdc.setPassword(args[1]); 21 | sccdc.setFolderName(args[2]); 22 | sccdc.setContentType(args[3]); 23 | sccdc.setContentName(args[4]); 24 | sccdc.create(); 25 | System.exit(0); 26 | } 27 | 28 | public void create() { 29 | createTestDoc(getContentName(), getContentType()); 30 | return; 31 | } 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/readme.md: -------------------------------------------------------------------------------- 1 | Alfresco Custom Workflows Tutorial 2 | ================================== 3 | 4 | These sample classes and sample Alfresco extension config files accompany an article called ["Alfresco Developer Series: Advanced Workflows, 2nd Edition"](http://ecmarchitect.com). 5 | 6 | Building the source 7 | ------------------- 8 | 9 | The project leverages Maven. It does not require you to separately download the 10 | Alfresco SDK or any of its dependencies. 11 | 12 | To build the source, run: 13 | `mvn install` 14 | 15 | This will create an AMP file in the target directory. 16 | 17 | Deploying the AMP 18 | ----------------- 19 | 20 | You can deploy the AMP to your Alfresco instance. 21 | 22 | For example, if you are running Alfresco installed with the binary installer in 23 | `/opt/alfresco/4.2e-installer`, you would copy the AMP from the target directory 24 | to `/opt/alfresco/4.2e-installer/amps`, then run `bin/apply_amps.sh`. 25 | 26 | Alternatively, you can run: 27 | `mvn integration-test -Pamp-to-war` 28 | 29 | Which will start Alfresco on an embedded Jetty server with the AMP deployed 30 | to a WAR. If you want to change the version of the Alfresco WAR, edit the 31 | pom.xml file. 32 | 33 | You should also deploy the workflow-article-share AMP to configure Share appropriately. -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/module/maven-sdk-tutorial-platform/model/workflow-model.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sample Workflow Model 5 | My Name 6 | 1.0 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/src/main/resources/alfresco/module/actions-tutorial-platform/module-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/src/main/resources/alfresco/web-extension/maven-sdk-tutorial-share-slingshot-application-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | 17 | 19 | 20 | 21 | alfresco.web-extension.messages.maven-sdk-tutorial-share 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share/src/main/resources/alfresco/web-extension/webscripts-tutorial-share-slingshot-application-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | 17 | 19 | 20 | 21 | alfresco.web-extension.messages.webscripts-tutorial-share 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | webscripts-tutorial-platform 5 | Alfresco Platform/Repository JAR Module 6 | Platform/Repo JAR Module (to be included in the alfresco.war) - part of AIO - SDK 4.0 7 | 8 | jar 9 | 10 | 11 | com.someco 12 | webscripts-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | com.someco 22 | behavior-tutorial-platform 23 | 1.0-SNAPSHOT 24 | provided 25 | 26 | 27 | 28 | 29 | 30 | 31 | org.apache.maven.plugins 32 | maven-assembly-plugin 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/module/maven-sdk-tutorial-platform/context/webscript-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 22 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | behavior-tutorial-platform 5 | behavior-tutorial repo tier AMP project 6 | ecmarchitect.com behavior tutorial repo tier 7 | jar 8 | 9 | 10 | com.someco 11 | behavior-tutorial 12 | 1.0-SNAPSHOT 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | com.someco 22 | content-tutorial-platform 23 | 1.0-SNAPSHOT 24 | provided 25 | 26 | 27 | 28 | 29 | 30 | 31 | org.apache.maven.plugins 32 | maven-assembly-plugin 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | actions-tutorial-platform 5 | Alfresco Platform/Repository JAR Module 6 | Platform/Repo JAR Module (to be included in the alfresco.war) - part of AIO - SDK 4.0 7 | 8 | jar 9 | 10 | 11 | com.someco 12 | actions-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | com.someco 23 | content-tutorial-platform 24 | 1.0-SNAPSHOT 25 | provided 26 | 27 | 28 | 29 | 30 | 31 | 32 | org.apache.maven.plugins 33 | maven-assembly-plugin 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/readme.md: -------------------------------------------------------------------------------- 1 | Alfresco Custom Actions Tutorial 2 | ================================ 3 | 4 | Alfresco Repository Configuration 5 | ---------------------------- 6 | 7 | These sample classes and sample Alfresco extension config files accompany an article called [Alfresco Developer Series: Developing Custom Actions, 2nd Edition](http://ecmarchitect.com. 8 | 9 | Building the source 10 | ------------------- 11 | 12 | The project leverages Maven. It does not require you to separately download the 13 | Alfresco SDK. 14 | 15 | To build the source, run: 16 | `mvn install` 17 | 18 | This will create an AMP file in the target directory. 19 | 20 | Dependencies 21 | ------------ 22 | 23 | This project assumes you have deployed the Custom Content Types Repo AMP. If you want to work with your custom actions from Alfresco Share, you will also need to deploy the Alfresco Custom Actions Share AMP. 24 | 25 | Deploying the AMP 26 | ----------------- 27 | 28 | You can deploy the AMP to your Alfresco instance. 29 | 30 | For example, if you are running Alfresco installed with the binary installer in 31 | `/opt/alfresco/4.2e-installer`, you would copy the AMP from the target directory 32 | to `/opt/alfresco/4.2e-installer/amps`, then run `bin/apply_amps.sh`. 33 | 34 | Alternatively, you can run: 35 | `mvn integration-test -Pamp-to-war` 36 | 37 | Which will start Alfresco on an embedded Jetty server with the AMP deployed 38 | to a WAR. If you want to change the version of the Alfresco WAR, edit the 39 | pom.xml file. -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-share/src/main/resources/alfresco/web-extension/content-tutorial-share-jar-application-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | alfresco.web-extension.messages.scModel 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/readme.md: -------------------------------------------------------------------------------- 1 | Alfresco Custom Web Scripts Tutorial 2 | ==================================== 3 | 4 | These sample classes and sample Alfresco extension config files accompany an article called ["Alfresco Developer: Intro to the Web Script Framework"](http://ecmarchitect.com). 5 | 6 | Building the source 7 | ------------------- 8 | 9 | The project leverages Maven. It does not require you to separately download the 10 | Alfresco SDK or any of its dependencies. 11 | 12 | To build the source, run: 13 | `mvn install` 14 | 15 | This will create an AMP file in the target directory. 16 | 17 | Dependencies 18 | ------------ 19 | The webscripts-tutorial-repo AMP must be deployed to a repository that also has in it the content-tutorial-repo AMP and the behavior-tutorial-repo AMP. These projects are also part of the [Alfresco Developer Series](https://github.com/jpotts/alfresco-developer-series) project on GitHub. 20 | 21 | Deploying the AMP 22 | ----------------- 23 | 24 | You can deploy the AMP to your Alfresco instance. 25 | 26 | For example, if you are running Alfresco installed with the binary installer in 27 | `/opt/alfresco/4.2e-installer`, you would copy the AMP from the target directory 28 | to `/opt/alfresco/4.2e-installer/amps`, then run `bin/apply_amps.sh`. 29 | 30 | Alternatively, you can run: 31 | `mvn integration-test -Pamp-to-war` 32 | 33 | Which will start Alfresco on an embedded Jetty server with the AMP deployed 34 | to a WAR. If you want to change the version of the Alfresco WAR, edit the 35 | pom.xml file. -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-share/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | content-tutorial-share 6 | Alfresco Share JAR Module 7 | jar 8 | Sample Share JAR Module (to be included in the share.war) - part of AIO - SDK 4.2 9 | 10 | 11 | com.someco 12 | content-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | ${alfresco.groupId} 25 | share 26 | classes 27 | 28 | 29 | 30 | 31 | 32 | 33 | org.apache.maven.plugins 34 | maven-assembly-plugin 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-share/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | maven-sdk-tutorial-share 6 | Alfresco Share JAR Module 7 | jar 8 | Sample Share JAR Module (to be included in the share.war) - part of AIO - SDK 4.0 9 | 10 | 11 | com.someco 12 | maven-sdk-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | ${alfresco.groupId} 25 | share 26 | classes 27 | 28 | 29 | 30 | 31 | 32 | 33 | org.apache.maven.plugins 34 | maven-assembly-plugin 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-share/src/main/resources/META-INF/share-config-custom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |

29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-share/readme.md: -------------------------------------------------------------------------------- 1 | Alfresco Custom Content Types Tutorial 2 | ====================================== 3 | 4 | Alfresco Share Configuration 5 | ---------------------------- 6 | 7 | These sample Alfresco Share extension config files accompany a tutorial called 8 | [Working with Custom Content Types in Alfresco] 9 | (http://ecmarchitect.com/alfresco-developer-series-tutorials/content/tutorial/tutorial.html). 10 | 11 | Building the source 12 | ------------------- 13 | 14 | The project leverages Maven. It does not require you to separately download the 15 | Alfresco SDK or any of its dependencies. 16 | 17 | To build the source, run: 18 | `mvn install` 19 | 20 | This will create an AMP file in the target directory. 21 | 22 | Deploying the AMP 23 | ----------------- 24 | 25 | You can deploy the AMP to your Alfresco instance. 26 | 27 | For example, if you are running Alfresco installed with the binary installer in 28 | `/opt/alfresco/4.2e-installer`, you would copy the AMP from the target directory 29 | to `/opt/alfresco/4.2e-installer/amps_share`, then run `bin/apply_amps.sh`. 30 | 31 | Alternatively, you can run: 32 | `mvn integration-test -Pamp-to-war` 33 | 34 | Which will start Alfresco Share on an embedded Tomcat server with the AMP deployed 35 | to a WAR. If you want to change the version of the Alfresco WAR, edit the 36 | pom.xml file. 37 | 38 | It is likely that you'll want Alfresco Share to connect to your test Alfresco 39 | repository running the custom content types you defined. If you run them both 40 | simultaneously Share will find the repository as long as it is running on 41 | localhost and port 8080. 42 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-share/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | behavior-tutorial-share 6 | behavior tutorial Share AMP project 7 | jar 8 | Share tier changes for the behavior tutorial 9 | 10 | 11 | com.someco 12 | behavior-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | ${alfresco.groupId} 25 | share 26 | classes 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | org.apache.maven.plugins 35 | maven-assembly-plugin 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/cmis/examples/TypeDefinitionExample.java: -------------------------------------------------------------------------------- 1 | package com.someco.cmis.examples; 2 | 3 | import java.util.Map; 4 | 5 | import org.apache.chemistry.opencmis.client.api.ObjectType; 6 | import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition; 7 | 8 | public class TypeDefinitionExample extends CMISExampleBase { 9 | private static final String USAGE = "java TypeDefinitionExample "; 10 | 11 | public static void main(String[] args) { 12 | if (args.length != 4) doUsage(TypeDefinitionExample.USAGE); 13 | TypeDefinitionExample tde = new TypeDefinitionExample(); 14 | tde.setUser(args[0]); 15 | tde.setPassword(args[1]); 16 | try { 17 | tde.doExample(args[2], args[3]); 18 | } catch (Exception e) { 19 | e.printStackTrace(); 20 | } 21 | System.exit(0); 22 | } 23 | 24 | public void doExample(String typeId, String propId) throws Exception { 25 | ObjectType typeDef = getSession().getTypeDefinition(typeId); 26 | Map> propDefs = typeDef.getPropertyDefinitions(); 27 | PropertyDefinition propDef = propDefs.get(propId); 28 | if (propDef == null) { 29 | throw new Exception("Property not found: " + propId); 30 | } 31 | System.out.println("Type: " + typeId); 32 | System.out.println(String.format("Is %s queryable? %s", propDef.getId(), propDef.isQueryable())); 33 | System.out.println(String.format("Is %s orderable? %s", propDef.getId(), propDef.isOrderable())); 34 | System.out.println(String.format("Is %s required? %s", propDef.getId(), propDef.isRequired())); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-share/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | actions-tutorial-share 6 | Alfresco Share JAR Module 7 | jar 8 | Sample Share JAR Module (to be included in the share.war) - part of AIO - SDK 4.0 9 | 10 | 11 | com.someco 12 | actions-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | ${alfresco.groupId} 25 | share 26 | classes 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | org.apache.maven.plugins 35 | maven-assembly-plugin 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-share/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | workflow-tutorial-share 6 | Alfresco Share JAR Module 7 | jar 8 | Sample Share JAR Module (to be included in the share.war) - part of AIO - SDK 4.0 9 | 10 | 11 | com.someco 12 | workflow-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | ${alfresco.groupId} 25 | share 26 | classes 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | org.apache.maven.plugins 35 | maven-assembly-plugin 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-share/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | webscripts-tutorial-share 6 | Alfresco Share JAR Module 7 | jar 8 | Sample Share JAR Module (to be included in the share.war) - part of AIO - SDK 4.0 9 | 10 | 11 | com.someco 12 | webscripts-tutorial 13 | 1.0-SNAPSHOT 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | ${alfresco.groupId} 25 | share 26 | classes 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | org.apache.maven.plugins 35 | maven-assembly-plugin 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/cmis/examples/BulkExample.java: -------------------------------------------------------------------------------- 1 | package com.someco.cmis.examples; 2 | 3 | import java.util.ArrayList; 4 | import java.util.HashMap; 5 | import java.util.List; 6 | 7 | import org.apache.chemistry.opencmis.client.api.CmisObject; 8 | import org.apache.chemistry.opencmis.client.api.Folder; 9 | import org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken; 10 | 11 | /** 12 | * This class uses the bulk update feature of CMIS to make a change to many 13 | * objects simultaneously with a single call to the server. 14 | * 15 | * @author jpotts 16 | * 17 | */ 18 | public class BulkExample extends CMISExampleBase { 19 | private static final String USAGE = "java BulkExample "; 20 | 21 | public static void main(String[] args) { 22 | if (args.length != 3) doUsage(BulkExample.USAGE); 23 | BulkExample cce = new BulkExample(); 24 | cce.setUser(args[0]); 25 | cce.setPassword(args[1]); 26 | cce.doExample(args[2]); 27 | System.exit(0); 28 | } 29 | 30 | public void doExample(String folderPath) { 31 | ArrayList docList = new ArrayList(); 32 | Folder folder = (Folder) getSession().getObjectByPath(folderPath); 33 | for (CmisObject obj : folder.getChildren()) { 34 | docList.add(obj); 35 | } 36 | 37 | HashMap props = new HashMap(); 38 | props.put("cmis:description", "description set in bulk"); 39 | List updatedIds = getSession().bulkUpdateProperties(docList, props, null, null); 40 | 41 | System.out.println("Updated " + updatedIds.size() + " objects."); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/module/webscripts-tutorial-platform/context/service-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/alfresco/module/behavior-tutorial-platform/module-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 22 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/resources/alfresco/module/content-tutorial-platform/context/service-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | alfresco/module/${project.artifactId}/model/scModel.xml 26 | 27 | 28 | 29 | 30 | alfresco/module/${project.artifactId}/messages/scModel 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/module/maven-sdk-tutorial-platform/module-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/behavior-tutorial-platform/src/main/resources/alfresco/module/behavior-tutorial-platform/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | #----------------------------------------------------------------------- 16 | # ${artifactId} module log4j.properties 17 | # 18 | # NOTE 19 | # ---- 20 | # Log4j uses the following logging levels: 21 | # debug,info,warn,error,fatal 22 | # 23 | # To set the logging level of {fullClassName} to {loglevel}, 24 | # add a line to this file of the following form: 25 | # 26 | # log4j.logger.{fullClassName}={loglevel} 27 | # 28 | # For example, to make 'com.example.MyExample' produce 'debug' 29 | # logs, add a line like this: 30 | # 31 | # log4j.logger.com.example.MyExample=debug 32 | # 33 | # 34 | # WARNING 35 | # ------- 36 | # Log properties in this log4j.properties file override/augment 37 | # those in the webapp's main log4j.properties. 38 | # 39 | #----------------------------------------------------------------------- 40 | log4j.logger.com.someco=${module.log.level} 41 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/cmis/examples/SomeCoCMISParents.java: -------------------------------------------------------------------------------- 1 | package com.someco.cmis.examples; 2 | 3 | 4 | import java.util.List; 5 | 6 | import org.apache.chemistry.opencmis.client.api.CmisObject; 7 | import org.apache.chemistry.opencmis.client.api.Document; 8 | import org.apache.chemistry.opencmis.client.api.Folder; 9 | import org.apache.chemistry.opencmis.client.api.Property; 10 | 11 | public class SomeCoCMISParents extends CMISExampleBase { 12 | private static final String USAGE = "java SomeCoCMISParents "; 13 | 14 | public static void main(String[] args) throws Exception { 15 | if (args.length != 5) doUsage(SomeCoCMISParents.USAGE); 16 | SomeCoCMISParents sccp = new SomeCoCMISParents(); 17 | sccp.setUser(args[0]); 18 | sccp.setPassword(args[1]); 19 | sccp.setFolderName(args[2]); 20 | sccp.setContentType(args[3]); 21 | sccp.setContentName(args[4]); 22 | sccp.getParents(); 23 | System.exit(0); 24 | } 25 | 26 | public void getParents() { 27 | 28 | Document obj = createTestDoc(getContentName(), getContentType()); 29 | 30 | if(obj instanceof Document) { 31 | Document doc = (Document)obj; 32 | 33 | Document docv = doc.getObjectOfLatestVersion(false); 34 | printProps(docv); 35 | System.out.println("Found document: " + docv.getId()); 36 | List parents = docv.getParents(); 37 | System.out.println("Found " + parents.size() + " parents"); 38 | for(Folder folder : parents) { 39 | System.out.println("\t"+folder.getId()); 40 | } 41 | } 42 | } 43 | private void printProps(CmisObject obj) { 44 | List> props = obj.getProperties(); 45 | 46 | for(Property property : props) { 47 | System.out.println("\t"+property.getId()+" = "+property.getValueAsString()); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/src/main/resources/alfresco/module/actions-tutorial-platform/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | #----------------------------------------------------------------------- 16 | # ${artifactId} module log4j.properties 17 | # 18 | # NOTE 19 | # ---- 20 | # Log4j uses the following logging levels: 21 | # debug,info,warn,error,fatal 22 | # 23 | # To set the logging level of {fullClassName} to {loglevel}, 24 | # add a line to this file of the following form: 25 | # 26 | # log4j.logger.{fullClassName}={loglevel} 27 | # 28 | # For example, to make 'com.example.MyExample' produce 'debug' 29 | # logs, add a line like this: 30 | # 31 | # log4j.logger.com.example.MyExample=debug 32 | # 33 | # 34 | # WARNING 35 | # ------- 36 | # Log properties in this log4j.properties file override/augment 37 | # those in the webapp's main log4j.properties. 38 | # 39 | #----------------------------------------------------------------------- 40 | log4j.logger.com.someco.action.executer=DEBUG 41 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-share/src/main/resources/alfresco/module/content-tutorial-share/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | #----------------------------------------------------------------------- 16 | # ${artifactId} module log4j.properties 17 | # 18 | # NOTE 19 | # ---- 20 | # Log4j uses the following logging levels: 21 | # debug,info,warn,error,fatal 22 | # 23 | # To set the logging level of {fullClassName} to {loglevel}, 24 | # add a line to this file of the following form: 25 | # 26 | # log4j.logger.{fullClassName}={loglevel} 27 | # 28 | # For example, to make 'com.example.MyExample' produce 'debug' 29 | # logs, add a line like this: 30 | # 31 | # log4j.logger.com.example.MyExample=debug 32 | # 33 | # 34 | # WARNING 35 | # ------- 36 | # Log properties in this log4j.properties file override/augment 37 | # those in the webapp's main log4j.properties. 38 | # 39 | #----------------------------------------------------------------------- 40 | log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level} -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-share/src/main/resources/alfresco/module/workflow-tutorial-share/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | #----------------------------------------------------------------------- 16 | # ${artifactId} module log4j.properties 17 | # 18 | # NOTE 19 | # ---- 20 | # Log4j uses the following logging levels: 21 | # debug,info,warn,error,fatal 22 | # 23 | # To set the logging level of {fullClassName} to {loglevel}, 24 | # add a line to this file of the following form: 25 | # 26 | # log4j.logger.{fullClassName}={loglevel} 27 | # 28 | # For example, to make 'com.example.MyExample' produce 'debug' 29 | # logs, add a line like this: 30 | # 31 | # log4j.logger.com.example.MyExample=debug 32 | # 33 | # 34 | # WARNING 35 | # ------- 36 | # Log properties in this log4j.properties file override/augment 37 | # those in the webapp's main log4j.properties. 38 | # 39 | #----------------------------------------------------------------------- 40 | log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level} -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/resources/alfresco/module/content-tutorial-platform/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | #----------------------------------------------------------------------- 16 | # ${artifactId} module log4j.properties 17 | # 18 | # NOTE 19 | # ---- 20 | # Log4j uses the following logging levels: 21 | # debug,info,warn,error,fatal 22 | # 23 | # To set the logging level of {fullClassName} to {loglevel}, 24 | # add a line to this file of the following form: 25 | # 26 | # log4j.logger.{fullClassName}={loglevel} 27 | # 28 | # For example, to make 'com.example.MyExample' produce 'debug' 29 | # logs, add a line like this: 30 | # 31 | # log4j.logger.com.example.MyExample=debug 32 | # 33 | # 34 | # WARNING 35 | # ------- 36 | # Log properties in this log4j.properties file override/augment 37 | # those in the webapp's main log4j.properties. 38 | # 39 | #----------------------------------------------------------------------- 40 | log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level} -------------------------------------------------------------------------------- /workflow/workflow-tutorial/workflow-tutorial-platform/src/main/resources/alfresco/module/workflow-tutorial-platform/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | #----------------------------------------------------------------------- 16 | # ${artifactId} module log4j.properties 17 | # 18 | # NOTE 19 | # ---- 20 | # Log4j uses the following logging levels: 21 | # debug,info,warn,error,fatal 22 | # 23 | # To set the logging level of {fullClassName} to {loglevel}, 24 | # add a line to this file of the following form: 25 | # 26 | # log4j.logger.{fullClassName}={loglevel} 27 | # 28 | # For example, to make 'com.example.MyExample' produce 'debug' 29 | # logs, add a line like this: 30 | # 31 | # log4j.logger.com.example.MyExample=debug 32 | # 33 | # 34 | # WARNING 35 | # ------- 36 | # Log properties in this log4j.properties file override/augment 37 | # those in the webapp's main log4j.properties. 38 | # 39 | #----------------------------------------------------------------------- 40 | #log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level} 41 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/alfresco/module/webscripts-tutorial-platform/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | #----------------------------------------------------------------------- 16 | # ${artifactId} module log4j.properties 17 | # 18 | # NOTE 19 | # ---- 20 | # Log4j uses the following logging levels: 21 | # debug,info,warn,error,fatal 22 | # 23 | # To set the logging level of {fullClassName} to {loglevel}, 24 | # add a line to this file of the following form: 25 | # 26 | # log4j.logger.{fullClassName}={loglevel} 27 | # 28 | # For example, to make 'com.example.MyExample' produce 'debug' 29 | # logs, add a line like this: 30 | # 31 | # log4j.logger.com.example.MyExample=debug 32 | # 33 | # 34 | # WARNING 35 | # ------- 36 | # Log properties in this log4j.properties file override/augment 37 | # those in the webapp's main log4j.properties. 38 | # 39 | #----------------------------------------------------------------------- 40 | log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level} -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/resources/alfresco/module/maven-sdk-tutorial-platform/context/bootstrap-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | alfresco/module/${project.artifactId}/model/content-model.xml 15 | alfresco/module/${project.artifactId}/model/workflow-model.xml 16 | 17 | 18 | 19 | 20 | 21 | alfresco/module/${project.artifactId}/messages/content-model 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | activiti 31 | alfresco/module/${project.artifactId}/workflow/sample-process.bpmn20.xml 32 | text/xml 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/main/java/com/someco/platformsample/HelloWorldWebScript.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2017 Alfresco Software Limited. 3 | *

4 | * This file is part of the Alfresco SDK project. 5 | *

6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | *

10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | *

12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package com.someco.platformsample; 19 | 20 | import org.springframework.extensions.webscripts.Cache; 21 | import org.springframework.extensions.webscripts.DeclarativeWebScript; 22 | import org.springframework.extensions.webscripts.Status; 23 | import org.springframework.extensions.webscripts.WebScriptRequest; 24 | import org.apache.commons.logging.Log; 25 | import org.apache.commons.logging.LogFactory; 26 | 27 | import java.util.HashMap; 28 | import java.util.Map; 29 | 30 | /** 31 | * A demonstration Java controller for the Hello World Web Script. 32 | * 33 | * @author martin.bergljung@alfresco.com 34 | * @since 2.1.0 35 | */ 36 | public class HelloWorldWebScript extends DeclarativeWebScript { 37 | private static Log logger = LogFactory.getLog(HelloWorldWebScript.class); 38 | 39 | protected Map executeImpl( 40 | WebScriptRequest req, Status status, Cache cache) { 41 | Map model = new HashMap(); 42 | model.put("fromJava", "HelloFromJava"); 43 | 44 | logger.debug("Your 'Hello World' Web Script was called!"); 45 | 46 | return model; 47 | } 48 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Alfresco Developer Series Tutorials 2 | =================================== 3 | 4 | Source code from the [ecmarchitect.com Alfresco Developer Series](https://ecmarchitect.com/alfresco-developer-series) tutorials. 5 | 6 | These tutorials are written for Alfresco 7.x, both Community and Enterprise 7 | Editions. They leverage Alfresco SDK 4.2. That version of the SDK will not work 8 | with older versions of Alfresco. If you want to go through these tutorials using 9 | an older version of Alfresco and the SDK, switch to an older tag. 10 | 11 | The tutorials build upon each other. The recommended order of progression is: 12 | 13 | * [Alfresco Maven SDK](https://ecmarchitect.com/alfresco-developer-series-tutorials/maven-sdk/tutorial/tutorial.html) 14 | * [Custom Content Types & CMIS](https://ecmarchitect.com/alfresco-developer-series-tutorials/content/tutorial/tutorial.html) 15 | * [Actions](https://ecmarchitect.com/alfresco-developer-series-tutorials/actions/tutorial/tutorial.html) 16 | * [Behaviors](https://ecmarchitect.com/alfresco-developer-series-tutorials/behaviors/tutorial/tutorial.html) 17 | * [Webscripts](https://ecmarchitect.com/alfresco-developer-series-tutorials/webscripts/tutorial/tutorial.html) 18 | * [Workflows](https://ecmarchitect.com/alfresco-developer-series-tutorials/workflow/tutorial/tutorial.html) 19 | 20 | Repository Structure 21 | -------------------- 22 | 23 | The repository contains a folder for each tutorial. Within that, there is a 24 | tutorial directory that contains the actual tutorial text and images as well as 25 | one or more project folders that contain source code that goes along with the 26 | tutorial. 27 | 28 | The projects roughly build on each other. So, for example, if you want to work 29 | through the Actions tutorial, you'll need to understand the content tutorial and 30 | you will need to check out the content tutorial source code and build it locally 31 | so that the actions project can pull in the content project as a dependency. 32 | 33 | Each tutorial contains specifics on which earlier tutorials it needs as 34 | dependencies. 35 | -------------------------------------------------------------------------------- /maven-sdk/maven-sdk-tutorial/maven-sdk-tutorial-platform/src/test/java/com/someco/platformsample/HelloWorldWebScriptControllerTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2017 Alfresco Software Limited. 3 | *

4 | * This file is part of the Alfresco SDK project. 5 | *

6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | *

10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | *

12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package com.someco.platformsample; 19 | 20 | import org.junit.Test; 21 | import org.mockito.Mockito; 22 | import org.springframework.extensions.webscripts.*; 23 | 24 | import java.util.Map; 25 | 26 | import static org.junit.Assert.assertEquals; 27 | import static org.junit.Assert.assertNotNull; 28 | 29 | /** 30 | * Unit testing the Web Script Java Controller 31 | * 32 | * @author martin.bergljung@alfresco.com 33 | * @version 1.0 34 | * @since 3.0 35 | */ 36 | public class HelloWorldWebScriptControllerTest { 37 | 38 | @Test 39 | public void testController() { 40 | WebScriptRequest req = Mockito.mock(WebScriptRequest.class); 41 | Status status = Mockito.mock(Status.class); 42 | Cache cache = Mockito.mock(Cache.class); 43 | 44 | String helloPropName = "fromJava"; 45 | String helloPropExpectedValue = "HelloFromJava"; 46 | HelloWorldWebScript ws = new HelloWorldWebScript(); 47 | Map model = ws.executeImpl(req, status, cache); 48 | 49 | assertNotNull("Response from Web Script Java Controller is null", model); 50 | assertEquals("Incorrect Web Script Java Controller Response", 51 | helloPropExpectedValue, model.get(helloPropName)); 52 | } 53 | } -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/cmis/examples/CheckoutCheckinExample.java: -------------------------------------------------------------------------------- 1 | package com.someco.cmis.examples; 2 | 3 | import java.io.ByteArrayInputStream; 4 | import java.io.InputStream; 5 | 6 | import org.apache.chemistry.opencmis.client.api.Document; 7 | import org.apache.chemistry.opencmis.client.api.ObjectId; 8 | import org.apache.chemistry.opencmis.commons.data.ContentStream; 9 | 10 | public class CheckoutCheckinExample extends CMISExampleBase { 11 | private static final String USAGE = "USAGE CheckoutCheckinExample "; 12 | 13 | public static void main(String[] args) { 14 | if (args.length != 3) doUsage(CheckoutCheckinExample.USAGE); 15 | CheckoutCheckinExample cce = new CheckoutCheckinExample(); 16 | cce.setUser(args[0]); 17 | cce.setPassword(args[1]); 18 | cce.doExample(args[2]); 19 | System.exit(0); 20 | } 21 | 22 | public void doExample(String filePath) { 23 | Document doc = (Document) getSession().getObjectByPath(filePath); 24 | System.out.println("Found document in repo. Current version: " + doc.getProperty("cmis:versionLabel").getValueAsString()); 25 | String fileName = doc.getName(); 26 | ObjectId pwcId = doc.checkOut(); // Checkout the document 27 | Document pwc = (Document) getSession().getObject(pwcId); // Get the working copy 28 | 29 | // Set up an updated content stream 30 | String docText = "This is a new major version."; 31 | byte[] content = docText.getBytes(); 32 | InputStream stream = new ByteArrayInputStream(content); 33 | ContentStream contentStream = getSession().getObjectFactory().createContentStream(fileName, Long.valueOf(content.length), "text/plain", stream); 34 | 35 | // Check in the working copy as a major version with a comment 36 | System.out.println("Updating document..."); 37 | ObjectId updatedId = pwc.checkIn(true, null, contentStream, "My new version comment"); 38 | doc = (Document) getSession().getObject(updatedId); 39 | System.out.println("Doc is now version: " + doc.getProperty("cmis:versionLabel").getValueAsString()); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/cmis/examples/PermissionExample.java: -------------------------------------------------------------------------------- 1 | package com.someco.cmis.examples; 2 | 3 | import org.apache.chemistry.opencmis.client.api.Folder; 4 | import org.apache.chemistry.opencmis.client.api.OperationContext; 5 | import org.apache.chemistry.opencmis.client.runtime.OperationContextImpl; 6 | import org.apache.chemistry.opencmis.commons.data.Ace; 7 | import org.apache.chemistry.opencmis.commons.data.Acl; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * Created by jpotts, Metaversant on 10/5/18. 13 | */ 14 | public class PermissionExample extends CMISExampleBase { 15 | public static void main(String[] args) { 16 | PermissionExample pe = new PermissionExample(); 17 | pe.setUser("admin"); 18 | pe.setPassword("admin"); 19 | pe.doExample(); 20 | System.exit(0); 21 | } 22 | 23 | public void doExample() { 24 | OperationContext oc = new OperationContextImpl(); 25 | oc.setIncludeAcls(true); 26 | Folder folder = (Folder) getSession().getObject("workspace://SpacesStore/5c8251c3-d309-4c88-a397-c408f4b34ed3", oc); 27 | 28 | // grab the ACL 29 | Acl acl = folder.getAcl(); 30 | 31 | // dump the entries to sysout 32 | dumpAcl(acl); 33 | 34 | // iterate over the ACL Entries, removing the one that matches the id we want to remove 35 | List aces = acl.getAces(); 36 | for (Ace ace : aces) { 37 | if (ace.getPrincipalId().equals("tuser2")) { 38 | aces.remove(ace); 39 | } 40 | } 41 | 42 | // update the object ACL with the new list of ACL Entries 43 | folder.setAcl(aces); 44 | 45 | // refresh the object 46 | folder.refresh(); 47 | 48 | // dump the acl to show the update 49 | acl = folder.getAcl(); 50 | dumpAcl(acl); 51 | } 52 | 53 | public void dumpAcl(Acl acl) { 54 | List aces = acl.getAces(); 55 | for (Ace ace : aces) { 56 | System.out.println(String.format("%s has %s access", ace.getPrincipalId(), ace.getPermissions())); 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /actions/actions-tutorial/actions-tutorial-platform/src/main/resources/alfresco/module/actions-tutorial-platform/context/service-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | false 39 | 40 | 41 | 42 | 43 | 44 | false 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/src/main/java/com/someco/cmis/examples/SomeCoCMISDataCleaner.java: -------------------------------------------------------------------------------- 1 | package com.someco.cmis.examples; 2 | 3 | 4 | import org.apache.chemistry.opencmis.client.api.CmisObject; 5 | 6 | import org.apache.chemistry.opencmis.client.api.ItemIterable; 7 | import org.apache.chemistry.opencmis.client.api.QueryResult; 8 | import org.apache.chemistry.opencmis.client.api.Session; 9 | import org.apache.chemistry.opencmis.commons.data.PropertyData; 10 | 11 | /** 12 | * This class will permanently delete all objects of type sc:doc and its sub-types. 13 | * This is a port of the SomeCoDataCleaner class which uses the Alfresco Web Services API. This example 14 | * shows how to delete instances of custom content types via CMIS. 15 | * 16 | * @author jpotts 17 | */ 18 | 19 | public class SomeCoCMISDataCleaner extends CMISExampleBase { 20 | private static final String USAGE = "java SomeCoCMISDataCleaner "; 21 | 22 | public static void main(String[] args) throws Exception { 23 | if (args.length != 3) doUsage(SomeCoCMISDataCleaner.USAGE); 24 | SomeCoCMISDataCleaner sccdc = new SomeCoCMISDataCleaner(); 25 | sccdc.setUser(args[0]); 26 | sccdc.setPassword(args[1]); 27 | sccdc.setFolderName(args[2]); 28 | sccdc.clean(); 29 | System.exit(0); 30 | } 31 | 32 | public void clean() throws Exception { 33 | Session session = getSession(); 34 | 35 | // execute query 36 | String queryString = "select * from sc:doc where in_folder('" + getFolderId(getFolderName()) + "')"; 37 | ItemIterable results = session.query(queryString, false); 38 | 39 | // delete each result 40 | if (results.getTotalNumItems() >= 0) System.out.println("Found " + results.getTotalNumItems() + " objects to delete."); 41 | for (QueryResult qResult : results) { 42 | PropertyData propData = qResult.getPropertyById("cmis:objectId"); 43 | String objectId = (String) propData.getFirstValue(); 44 | CmisObject obj = session.getObject(session.createObjectId(objectId)); 45 | obj.delete(true); 46 | System.out.println("Deleted: " + objectId); 47 | } 48 | System.out.println("Done!"); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /actions/actions-tutorial/docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.4' 2 | services: 3 | actions-tutorial-share: 4 | image: alfresco-share-actions-tutorial:development 5 | build: 6 | dockerfile: ./Dockerfile 7 | context: ../../../actions-tutorial-share-docker/target 8 | environment: 9 | CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888" 10 | REPO_HOST: actions-tutorial-acs 11 | REPO_PORT: 8080 12 | ports: 13 | - "${share.port}:8080" 14 | - "${share.debug.port}:8888" 15 | actions-tutorial-acs: 16 | image: alfresco-content-services-actions-tutorial:development 17 | build: 18 | dockerfile: ./Dockerfile 19 | context: ../../../actions-tutorial-platform-docker/target 20 | environment: 21 | JAVA_TOOL_OPTIONS: "${keystore.settings}" 22 | CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888" 23 | ports: 24 | - "${acs.port}:8080" 25 | - "${acs.debug.port}:8888" 26 | volumes: 27 | - actions-tutorial-acs-volume:/usr/local/tomcat/alf_data 28 | depends_on: 29 | - actions-tutorial-postgres 30 | actions-tutorial-postgres: 31 | image: postgres:9.6 32 | environment: 33 | POSTGRES_DB: alfresco 34 | POSTGRES_USER: alfresco 35 | POSTGRES_PASSWORD: alfresco 36 | command: postgres -c max_connections=300 -c log_min_messages=LOG 37 | ports: 38 | - "${postgres.port}:5432" 39 | volumes: 40 | - actions-tutorial-db-volume:/var/lib/postgresql/data 41 | actions-tutorial-ass: 42 | image: alfresco/alfresco-search-services:1.2.0 43 | environment: 44 | SOLR_ALFRESCO_HOST: actions-tutorial-acs 45 | SOLR_ALFRESCO_PORT: 8080 46 | SOLR_SOLR_HOST: actions-tutorial-ass 47 | SOLR_SOLR_PORT: 8983 48 | SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive 49 | ports: 50 | - "8983:8983" 51 | volumes: 52 | - actions-tutorial-ass-volume:/opt/alfresco-search-services/contentstore 53 | - actions-tutorial-ass-volume:/opt/alfresco-search-services/data 54 | volumes: 55 | actions-tutorial-acs-volume: 56 | external: true 57 | actions-tutorial-db-volume: 58 | external: true 59 | actions-tutorial-ass-volume: 60 | external: true 61 | -------------------------------------------------------------------------------- /content/content-tutorial-cmis/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | com.someco 4 | content-tutorial-cmis 5 | 0.0.1-SNAPSHOT 6 | 7 | src/main/java 8 | 9 | 10 | org.apache.maven.plugins 11 | maven-compiler-plugin 12 | 3.8.0 13 | 14 | 11 15 | 11 16 | 17 | 18 | 19 | 20 | 21 | 22 | artifacts.alfresco.com 23 | Alfresco Maven Repository 24 | https://artifacts.alfresco.com/nexus/content/groups/public/ 25 | 26 | 27 | 28 | 29 | org.apache.chemistry.opencmis 30 | chemistry-opencmis-client-impl 31 | 1.1.0 32 | 33 | 34 | com.someco 35 | content-tutorial-platform 36 | 1.0-SNAPSHOT 37 | jar 38 | 39 | 40 | org.slf4j 41 | slf4j-api 42 | 1.7.31 43 | 44 | 45 | org.apache.logging.log4j 46 | log4j-slf4j-impl 47 | 2.14.1 48 | 49 | 50 | org.apache.logging.log4j 51 | log4j-api 52 | 2.14.1 53 | 54 | 55 | org.apache.logging.log4j 56 | log4j-core 57 | 2.13.2 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /content/content-tutorial/docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.4' 2 | services: 3 | content-tutorial-share: 4 | image: alfresco-share-content-tutorial:development 5 | build: 6 | dockerfile: ./Dockerfile 7 | context: ../../../content-tutorial-share-docker/target 8 | environment: 9 | CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888" 10 | REPO_HOST: content-tutorial-acs 11 | REPO_PORT: 8080 12 | ports: 13 | - "${share.port}:8080" 14 | - "${share.debug.port}:8888" 15 | content-tutorial-acs: 16 | image: alfresco-content-services-content-tutorial:development 17 | build: 18 | dockerfile: ./Dockerfile 19 | context: ../../../content-tutorial-platform-docker/target 20 | environment: 21 | JAVA_TOOL_OPTIONS: "${keystore.settings}" 22 | CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888" 23 | ports: 24 | - "${acs.port}:8080" 25 | - "${acs.debug.port}:8888" 26 | volumes: 27 | - content-tutorial-acs-volume:/usr/local/tomcat/alf_data 28 | depends_on: 29 | - content-tutorial-postgres 30 | content-tutorial-postgres: 31 | image: postgres:9.6 32 | environment: 33 | POSTGRES_DB: alfresco 34 | POSTGRES_USER: alfresco 35 | POSTGRES_PASSWORD: alfresco 36 | command: postgres -c max_connections=300 -c log_min_messages=LOG 37 | ports: 38 | - "${postgres.port}:5432" 39 | volumes: 40 | - content-tutorial-db-volume:/var/lib/postgresql/data 41 | content-tutorial-ass: 42 | image: alfresco/alfresco-search-services:1.2.0 43 | environment: 44 | SOLR_ALFRESCO_HOST: content-tutorial-acs 45 | SOLR_ALFRESCO_PORT: 8080 46 | SOLR_SOLR_HOST: content-tutorial-ass 47 | SOLR_SOLR_PORT: 8983 48 | SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive 49 | ports: 50 | - "8983:8983" 51 | volumes: 52 | - content-tutorial-ass-volume:/opt/alfresco-search-services/contentstore 53 | - content-tutorial-ass-volume:/opt/alfresco-search-services/data 54 | volumes: 55 | content-tutorial-acs-volume: 56 | external: true 57 | content-tutorial-db-volume: 58 | external: true 59 | content-tutorial-ass-volume: 60 | external: true 61 | -------------------------------------------------------------------------------- /webscripts/webscripts-tutorial/webscripts-tutorial-platform/src/main/resources/META-INF/resources/scripts/someco/rating-script.js: -------------------------------------------------------------------------------- 1 | var NUMBER_OF_STARS = 5; 2 | function init_rating() { 3 | var ratings = document.getElementsByTagName('div'); 4 | for (var i = 0; i < ratings.length; i++) { 5 | if (ratings[i].className != 'rating') 6 | continue; 7 | 8 | var rating = ratings[i].firstChild.nodeValue; 9 | ratings[i].removeChild(ratings[i].firstChild); 10 | if (rating > NUMBER_OF_STARS || rating < 0) 11 | continue; 12 | for (var j = 1; j <= NUMBER_OF_STARS; j++) { 13 | var star = document.createElement('img'); 14 | if (rating >= 1) { 15 | star.setAttribute('src', '/alfresco/images/someco/stars/rating_on.gif'); 16 | star.className = 'on'; 17 | rating--; 18 | } else if(rating > 0 && rating < 1) { 19 | star.setAttribute('src', '/alfresco/images/someco/stars/rating_half.gif'); 20 | star.className = 'half'; 21 | rating = 0; 22 | } else { 23 | star.setAttribute('src', '/alfresco/images/someco/stars/rating_off.gif'); 24 | star.className = 'off'; 25 | } 26 | var widgetId = ratings[i].getAttribute('id').substr(7); 27 | star.setAttribute('id', 'star_'+widgetId+'_'+j); 28 | star.onmouseover = new Function("evt", "displayHover('"+widgetId+"', "+j+");"); 29 | star.onmouseout = new Function("evt", "displayNormal('"+widgetId+"', "+j+");"); 30 | ratings[i].appendChild(star); 31 | } 32 | } 33 | } 34 | 35 | function displayHover(ratingId, star) { 36 | for (var i = 1; i <= star; i++) { 37 | document.getElementById('star_'+ratingId+'_'+i).setAttribute('src', '/alfresco/images/someco/stars/rating_over.gif'); 38 | } 39 | } 40 | 41 | function displayNormal(ratingId, star) { 42 | for (var i = 1; i <= star; i++) { 43 | var status = document.getElementById('star_'+ratingId+'_'+i).className; 44 | document.getElementById('star_'+ratingId+'_'+i).setAttribute('src', '/alfresco/images/someco/stars/rating_'+status+'.gif'); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /behaviors/behavior-tutorial/docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.4' 2 | services: 3 | behavior-tutorial-share: 4 | image: alfresco-share-behavior-tutorial:development 5 | build: 6 | dockerfile: ./Dockerfile 7 | context: ../../../behavior-tutorial-share-docker/target 8 | environment: 9 | CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888" 10 | REPO_HOST: behavior-tutorial-acs 11 | REPO_PORT: 8080 12 | ports: 13 | - "${share.port}:8080" 14 | - "${share.debug.port}:8888" 15 | behavior-tutorial-acs: 16 | image: alfresco-content-services-behavior-tutorial:development 17 | build: 18 | dockerfile: ./Dockerfile 19 | context: ../../../behavior-tutorial-platform-docker/target 20 | environment: 21 | JAVA_TOOL_OPTIONS: "${keystore.settings}" 22 | CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888" 23 | ports: 24 | - "${acs.port}:8080" 25 | - "${acs.debug.port}:8888" 26 | volumes: 27 | - behavior-tutorial-acs-volume:/usr/local/tomcat/alf_data 28 | depends_on: 29 | - behavior-tutorial-postgres 30 | behavior-tutorial-postgres: 31 | image: postgres:9.6 32 | environment: 33 | POSTGRES_DB: alfresco 34 | POSTGRES_USER: alfresco 35 | POSTGRES_PASSWORD: alfresco 36 | command: postgres -c max_connections=300 -c log_min_messages=LOG 37 | ports: 38 | - "${postgres.port}:5432" 39 | volumes: 40 | - behavior-tutorial-db-volume:/var/lib/postgresql/data 41 | behavior-tutorial-ass: 42 | image: alfresco/alfresco-search-services:1.2.0 43 | environment: 44 | SOLR_ALFRESCO_HOST: behavior-tutorial-acs 45 | SOLR_ALFRESCO_PORT: 8080 46 | SOLR_SOLR_HOST: behavior-tutorial-ass 47 | SOLR_SOLR_PORT: 8983 48 | SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive 49 | ports: 50 | - "8983:8983" 51 | volumes: 52 | - behavior-tutorial-ass-volume:/opt/alfresco-search-services/contentstore 53 | - behavior-tutorial-ass-volume:/opt/alfresco-search-services/data 54 | volumes: 55 | behavior-tutorial-acs-volume: 56 | external: true 57 | behavior-tutorial-db-volume: 58 | external: true 59 | behavior-tutorial-ass-volume: 60 | external: true 61 | -------------------------------------------------------------------------------- /workflow/workflow-tutorial/docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.4' 2 | services: 3 | workflow-tutorial-share: 4 | image: alfresco-share-workflow-tutorial:development 5 | build: 6 | dockerfile: ./Dockerfile 7 | context: ../../../workflow-tutorial-share-docker/target 8 | environment: 9 | CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888" 10 | REPO_HOST: workflow-tutorial-acs 11 | REPO_PORT: 8080 12 | ports: 13 | - "${share.port}:8080" 14 | - "${share.debug.port}:8888" 15 | workflow-tutorial-acs: 16 | image: alfresco-content-services-workflow-tutorial:development 17 | build: 18 | dockerfile: ./Dockerfile 19 | context: ../../../workflow-tutorial-platform-docker/target 20 | environment: 21 | JAVA_TOOL_OPTIONS: "${keystore.settings}" 22 | CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888" 23 | ports: 24 | - "${acs.port}:8080" 25 | - "${acs.debug.port}:8888" 26 | volumes: 27 | - workflow-tutorial-acs-volume:/usr/local/tomcat/alf_data 28 | depends_on: 29 | - workflow-tutorial-postgres 30 | workflow-tutorial-postgres: 31 | image: postgres:9.6 32 | environment: 33 | POSTGRES_DB: alfresco 34 | POSTGRES_USER: alfresco 35 | POSTGRES_PASSWORD: alfresco 36 | command: postgres -c max_connections=300 -c log_min_messages=LOG 37 | ports: 38 | - "${postgres.port}:5432" 39 | volumes: 40 | - workflow-tutorial-db-volume:/var/lib/postgresql/data 41 | workflow-tutorial-ass: 42 | image: alfresco/alfresco-search-services:1.2.0 43 | environment: 44 | SOLR_ALFRESCO_HOST: workflow-tutorial-acs 45 | SOLR_ALFRESCO_PORT: 8080 46 | SOLR_SOLR_HOST: workflow-tutorial-ass 47 | SOLR_SOLR_PORT: 8983 48 | SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive 49 | ports: 50 | - "8983:8983" 51 | volumes: 52 | - workflow-tutorial-ass-volume:/opt/alfresco-search-services/contentstore 53 | - workflow-tutorial-ass-volume:/opt/alfresco-search-services/data 54 | volumes: 55 | workflow-tutorial-acs-volume: 56 | external: true 57 | workflow-tutorial-db-volume: 58 | external: true 59 | workflow-tutorial-ass-volume: 60 | external: true 61 | -------------------------------------------------------------------------------- /content/content-tutorial/content-tutorial-platform/src/main/resources/alfresco/module/content-tutorial-platform/module.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | 18 | # SDK Sample module 19 | 20 | # ==== Beginning of Alfresco required/optional properties ====== # 21 | # NB: These properties are filtered at build time by Maven, single 22 | # sourcing from POM properties 23 | module.id=${project.artifactId} 24 | #module.aliases=myModule-123, my-module 25 | module.title=${project.name} 26 | module.description=${project.description} 27 | module.version=${project.version} 28 | 29 | # The following optional properties can be used to prevent the module from being added 30 | # to inappropriate versions of the WAR file. 31 | # module.repo.version.min=2.0 32 | # module.repo.version.max=2.1 33 | 34 | # FIXME: This dependencies should come out of mvn dependencies on amp 35 | 36 | # The following describe dependencies on other modules 37 | # Depends on net.sf.myproject.module.SupportModuleA version ${version} or later 38 | # module.depends.net.sf.myproject.module.SupportModuleA=${version}-* 39 | # Depends on net.sf.myproject.module.SupportModuleA version ${version} to 2.0 40 | # module.depends.net.sf.myproject.module.SupportModuleB=${version}-2.0 41 | # Depends on net.sf.myproject.module.SupportModuleC - any version 42 | # module.depends.net.sf.myproject.module.SupportModuleB=* 43 | 44 | 45 | # ==== End of Alfresco required/optional properties ======= # 46 | 47 | 48 | # ==== Beginning of module required properties/optional ====== # 49 | --------------------------------------------------------------------------------