1 /***************************************************************************************
2 * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. *
3 * http://aspectwerkz.codehaus.org *
4 * ---------------------------------------------------------------------------------- *
5 * The software in this package is published under the terms of the LGPL license *
6 * a copy of which has been included with this distribution in the license.txt file. *
7 **************************************************************************************/
8 package org.codehaus.aspectwerkz.definition;
9
10 import java.io.File;
11 import java.net.MalformedURLException;
12 import java.util.Set;
13 import java.util.HashSet;
14
15 /***
16 * TODO remove class and move single method to SystemDefinitionContainer?s
17 * <p/>
18 * Handles the loading of the definition in various ways and formats.
19 *
20 * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
21 */
22 public class DefinitionLoader {
23 /***
24 * The UUID of the single AspectWerkz system if only one definition is used.
25 */
26 public static final String DEFAULT_SYSTEM = "default";
27
28 /***
29 * The path to the definition file.
30 */
31 public static final String DEFINITION_FILE = System.getProperty("aspectwerkz.definition.file", null);
32
33 /***
34 * The default name for the definition file.
35 */
36 public static final String DEFAULT_DEFINITION_FILE_NAME = "aspectwerkz.xml";
37
38 /***
39 * Returns the default defintion.
40 *
41 * @param loader
42 * @return the default defintion
43 */
44 public static Set getDefaultDefinition(final ClassLoader loader) {
45 if (DEFINITION_FILE != null) {
46 File file = new File(DEFINITION_FILE);
47 if (file.canRead()) {
48 try {
49 return XmlParser.parseNoCache(loader, file.toURL());
50 } catch (MalformedURLException e) {
51 System.err.println("<WARN> Cannot read " + DEFINITION_FILE);
52 e.printStackTrace();
53 }
54 } else {
55 System.err.println("<WARN> Cannot read " + DEFINITION_FILE);
56 }
57 }
58 return new HashSet();
59 }
60 }