Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. open SVN Repository Exploring Perspective
  2. add repository location
  3. http://svn.magnolia-cms.com/svn

Create/Checkout a Project

New Checkout

  1. open "SVN Repository" perspective (Window -> Open perspective)
  2. select module/project to check out
  3. click "Check out" in the context menu

...

Make sure that the option Serve modules without publishing is selected. This ensures that the classes are taken from the target directories. 

Freemarker specific settings

tld's

FreeMarker won't search the classpath for finding the tlds but uses only WEB-INF/lib and the entries defined in web.xml directly. There exist mainly the following two workarounds:

...

Code Block
 zip -d magnolia-taglib-cms-4.1.1-SNAPSHOT.jar /info/*
 zip -d magnolia-taglib-utility-4.1.1-SNAPSHOT.jar /info/*

Auto completion

Freemarker templates do not provide automatically auto completion of the provided objects.

The provided objects like ctx, stk or mgnl must be declared to the IDE, that they can be auto completed.

There for a configuration file must be provided in each project in your workspace. The file is named '.freemarker-ide.xml'. I have attached it to this page without the dot at the beginning, or I can't upload it on the Mac otherwise (hidden).

The important part of this configuration file is the declaration of the objects the auto completion should know. I think these four declarations I use make sense:

Code Block

<value key="mgnl" object-class="info.magnolia.module.templating.MagnoliaTemplatingUtilities"/>
<value key="ctx" object-class="info.magnolia.context.MgnlContext"/>
<value key="stk" object-class="info.magnolia.module.templatingkit.util.STKUtil"/>
<value key="state" object-class="info.magnolia.cms.core.AggregationState"/>

Configure Code Style

If you are an internal developer or a contributor please follow the instructions found here: Code style and configure AnyEdit as follows:

Tips and Tricks

Get the sources or a linked jar / module

...

  1. make sure that you have only one webapp project open
  2. add the pom dependency (not only the war dependency) otherwise the dependencies defined in the referenced war file won't be seen
  3. use mvn war:inplace to overlay the webapp project (make sure that the WEB-INF/web.xml exists
  4. ensure that you delete WEB-INF/lib afterwardsafter a war:inplace

Trouble shooting step by step

  1. check if there are any build issues denoted in the problem view
  2. check if there are any problems denoted in the pom.xml (missing parents, ..)
  3. check if the project builds in the terminal (by using mvn only)
    • are the parent poms available?
  4. check the maven log in eclipse (select the maven console in the console view)
    • are the logs fine?
    • verify that there is no version conflict thrown by the enforcer plugin
      • if so configure the project to use the eclipse profile in the project settings (maven tab)
  5. clean the project
    • this ensures that maven is used to build the resources
    • verify that the resources have been built (module descriptor in target/classes/META-INF/magnolia
  6. update project configuration
    • right click project -> maven -> update project configuration
    • check the maven console (some errors are not reported to the GUI)

Auto completion in Freemarker templates

Freemarker templates do not provide automatically auto completion of the provided objects.

The provided objects like ctx, stk or mgnl must be declared to the IDE, that they can be auto completed.

There for a configuration file must be provided in each project in your workspace. The file is named '.freemarker-ide.xml'. I have attached it to this page without the dot at the beginning, or I can't upload it on the Mac otherwise (hidden).

The important part of this configuration file is the declaration of the objects the auto completion should know. I think these four declarations I use make sense:

Code Block

<value key="mgnl" object-class="info.magnolia.module.templating.MagnoliaTemplatingUtilities"/>
<value key="ctx" object-class="info.magnolia.context.MgnlContext"/>
<value key="stk" object-class="info.magnolia.module.templatingkit.util.STKUtil"/>
<value key="state" object-class="info.magnolia.cms.core.AggregationState"/>