2. Set up the demo project locally
Check out the demo project from:
● http://svn.onehippo.org/repos/hippo/hippo-
training-autoexport/trunk
● build it with: mvn clean install
● run it with: mvn -Pcargo.run
3. Agenda
1. Developer at work, creating configuration
2. What can Automatic Export do to help you?
3. Tips & Tricks
4. What's in a Days Work?
Things you make as a Hippo Developer:
● java code (HippoBeans, HstComponents)
● templates (JSP, Freemarker)
● repository content (type definitions, hst
configuration, etc)
6. Building & Running
1. Build your project: mvn clean install
2. Run your project: mvn -Pcargo.run
7. LOCAL RUNNING
PROJECT CONTAINER
cms.war
content.jar
site.war
8. CMS starts up....
1. CMS will check if content needs to be
bootstrapped.
2. All entries in all hippoecm-extension.xml files
are processed.
3. Every entry points to a packaged file, and
that is bootstrapped into the repository.
4. The hippoecm-extension.xml file of your
content.jar from your project is processed.
10. Developer at work
1. You use the cms and console to update
some configuration, say create a new
document type.
2. Now the changed configuration must be
stored in the content module of your project
so it can be bootstrapped next time.
3. You need the actual data there as xml file.
4. You need an entry in the hippoecm-
extension file.
11. LOCAL RUNNING
STORAGE
PROJECT CONTAINER
cms.war
content.jar
Repository
site.war
1. EXPORT
CONFIG AS XML
2. UPDATE HIPPOECM-
EXTENSION.XML
12. This is tiring and cumbersome work
1. You need to be accurate about which nodes
to export.
2. Place the exported xml in your content
module.
3. Write a correct entry in hippoecm-extension.
xml.
4. This is error prone and boring.
5. Luckily there is now...
13. LOCAL RUNNING
STORAGE
PROJECT CONTAINER
cms.war
content.jar
Repository
site.war
AUTOMATIC EXPORT !! 1. EXPORT
CONFIG AS XML
2. UPDATE HIPPOECM-
EXTENSION.XML
14. Yes, Automatic Export can do for
you:
1. Export the changed xml files
2. Write an entry in hippoecm-extension.xml if
necessary.
3. You can configure the behavior of the
export.
15. Basic export: new document type
● log in at http://localhost:8080/cms as admin
● go to the documents perspective and to the
Configuration tab
● create a new document type, say the
agendadocument, add a field to it, click
Done and Type actions / Commit
● check the log to see what the Automatic
Export has exported
● check the new/changed files in your project
16. Enable / disable from the console
● log in at http://localhost:8080/cms/console as
admin
● at the top right of your screen you see the
status of the automatic export
● you can toggle the status here too
17. Configuration options
● log in at http://localhost:8080/cms/console as
admin
● navigate to:
/hippo:configuration/hippo:modules
/autoexport/hippo:moduleconfig
Here you can configure 3 basic characteristics:
1. Exclusion patterns
2. Filter uuids
3. Multiple modules
18. 1. Exclusion patterns
● define them with the multivalued "excluded"
property
● the value is a path in the repository
● use the wildcard * for path elements
● use the wildcards ** for paths
In our demo project you can see that there are
two exclusion patterns defined for the /hst:
hst/hst:configuration path. They prevent that
the unpublished changes in the Channel
Manager are exported.
19. Test the given exclusion pattern
● In the cms, go to the Channel perspective,
click on the channel name, and click Edit
templates.
● Change the homepage template by adding
the list component to the container.
● Click Save and Close.
● Check the logs to see that nothing is
exported.
● Click publish templates, check the logs
again.
20. 2. Filter uuids from the exported file
● In exported document content you need the
uuids of the exported data. But in for
example exported hst configuration, the uuid
is just clutter.
● The multivalued "filteruuidpaths" property
lets you define paths in the repository where
configuration exists of which you do not want
the uuids in the exports.
● For example: the hst config that was
exported after the change in the Channel
Manager does not contain jcr:uuid
21. 3. Export to multiple content
modules
● If you work with multiple content modules,
you can instruct the autoexport to send the
exports from different content paths to
different modules.
● Use the multivalued "modules" property in
the autoexport config node.
● Values are formatted as modulename:
/repositorypath
22. Export to the foocontent module
● in our demo, from two repository paths the
autoexport will export to the foocontent
module in the project
● add a node "foo" below the rootnode in the
repository
● add a node too at the other path
● click "Write changes to repository"
● check the logs and the foocontent module in
your project
24. Tips and Tricks - 2
Autoexport tries to be clever about sequence
numbers for hippoecm-extension.xml.
25. Tips and Tricks - 3
Before you commit your changes to a
versioning system: rebuild your project & restart
with a new storage folder.
You may want to keep a copy of the storage
folder.
mvn -Pcargo.run -Drepo.path=storage
26. Tips and Tricks - 4
Do not change the content module manually in
your project while working with autoexport.
With autoexport you get a powerful tool, but
you have to be careful while you are using it.
27. Tips and Tricks - 5
Follow the setup of the content module as we
have it in the archetype.
28. Tips and Tricks - 6
● Give the autoexport a chance!
● http://wiki.onehippo.
com/display/CMS7/Automatic+export+add-
on
● Ask your questions on the mailing list.