Created
February 10, 2011 00:16
-
-
Save jetztgradnet/819650 to your computer and use it in GitHub Desktop.
Grails OSGi plugin: _Events.groovy modified for Grails 1.3.6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import grails.util.BuildSettingsHolder | |
// TODO move all of this into _Osgi.groovy | |
def optional="resolution:=optional" | |
def osgiImportSpecs = "version=\"[1.5.0, 5.0.0)\"" | |
def servletImportSpecs = "version=\"[2.4.0, 2.6.0)\"" | |
def jspImportSpecs = "version=\"[2.1.0, 2.3.0)\";$optional" | |
def jstlImportSpecs = "version=\"[1.1.0, 2.0.0)\";$optional" | |
def springImportSpecs = "version=\"[3.0.1, 4.0.0)\"" | |
def springDMImportSpecs = "version=\"[2.0.0, 3.0.0)\";$optional" | |
// TODO determine from current Grails app | |
def springVersion = '3.0.5.RELEASE' | |
def commonModulesConfig = [ | |
// AspectJ, byte code generation, and weaving support | |
'antlr-2.7.6.jar': 'bundle:com.springsource.antlr;version="[2.7.7,2.7.7]"', | |
'aopalliance-1.0.jar': 'package:org.aopalliance.aop;version="1.0.0",org.aopalliance.intercept;version="1.0.0"', //bundle:com.springsource.org.aopalliance;version="[3.0.0.RELEASE, 4.0.0)" | |
'aspectjrt-1.6.6.jar': 'bundle:com.springsource.org.aspectj.runtime;version="1.6.6.RELEASE"', | |
'aspectjweaver-1.6.6.jar': 'bundle:com.springsource.org.aspectj.runtime;version="1.6.6.RELEASE"', | |
'aspectjrt-1.6.8.jar': 'bundle:com.springsource.org.aspectj.runtime;version="1.6.8.RELEASE"', | |
'aspectjweaver-1.6.8.jar': 'bundle:com.springsource.org.aspectj.runtime;version="1.6.8.RELEASE"', | |
'cglib-nodep-2.1_3.jar': 'bundle:com.springsource.net.sf.cglib;version="[2.1.3,2.2.0)"', | |
'javassist-3.8.0.GA.jar': 'bundle:com.springsource.javassist;version="[3.9.0, 4.0.0)"', | |
'javassist-3.11.0.GA.jar': 'bundle:com.springsource.javassist;version="[3.9.0, 4.0.0)"', | |
// Apache Jakarta Commons | |
'commons-beanutils-1.8.0.jar': 'bundle:com.springsource.org.apache.commons.beanutils;version="1.8.0"', | |
'commons-codec-1.3.jar': 'bundle:com.springsource.org.apache.commons.codec;version="1.3.0"', | |
'commons-codec-1.4.jar': 'bundle:com.springsource.org.apache.commons.codec;version="1.4.0"', | |
'commons-collections-3.2.1.jar': 'bundle:com.springsource.org.apache.commons.collections;version="3.2.1"', | |
'commons-dbcp-1.2.2.jar': 'bundle:com.springsource.org.apache.commons.dbcp;version="1.2.2.osgi"', | |
// TODO newer replacement required | |
'commons-dbcp-1.3.jar': 'bundle:com.springsource.org.apache.commons.dbcp;version="1.2.2.osgi"', | |
'commons-el-1.0.jar': 'bundle:com.springsource.org.apache.commons.el;version="1.0.0"', | |
'commons-fileupload-1.2.1.jar': 'bundle:com.springsource.org.apache.commons.fileupload;version="1.2.1"', | |
'commons-httpclient-3.1.jar': 'bundle:com.springsource.org.apache.commons.httpclient;version="3.1.0"', | |
'commons-io-1.4.jar': 'bundle:com.springsource.org.apache.commons.io;version="1.4.0"', | |
'commons-lang-2.4.jar': 'bundle:com.springsource.org.apache.commons.lang;version="2.4.0"', | |
'commons-pool-1.5.3.jar': 'bundle:com.springsource.org.apache.commons.pool;version="1.5.3"', | |
// TODO newer replacement required | |
'commons-pool-1.5.5.jar': 'bundle:com.springsource.org.apache.commons.pool;version="1.5.3"', | |
'commons-validator-1.3.1.jar': 'bundle:com.springsource.org.apache.commons.validator;version="1.3.1"', | |
// XML and XSL(T) | |
'xalan-2.7.1.jar': '', | |
'xercesImpl-2.9.1.jar': 'bundle:com.springsource.org.apache.xmlcommons;version="[1.3.4,1.4.0)"', // Xerces is a fragment and attaches to xmlxcommons 'bundle:com.springsource.org.apache.xerces;version="[2.9.1,3.0.0)"', | |
'xmlsec-1.4.2.jar': '', | |
'xpp3_min-1.1.3.4.O.jar': '', | |
'dom4j-1.6.1.jar': 'bundle:com.springsource.org.dom4j;version="1.6.1"', | |
// logging related | |
'jcl-over-slf4j-1.5.8.jar': 'package:org.apache.commons.logging;version="[1.1.1, 1.2.0)"', | |
'jul-to-slf4j-1.5.8.jar': '', | |
'log4j-1.2.15.jar': '', | |
'log4j-1.2.16.jar': '', | |
'slf4j-api-1.5.8.jar': 'package:org.slf4j;version="[1.5.6, 1.6.0)"', | |
'slf4j-log4j12-1.5.8.jar': '', | |
// standard Java SE/EE apis | |
'jta-1.1.jar': 'package:javax.transaction', | |
'jaxb-api-2.1.jar': '', | |
'jaxb-impl-2.1.3.jar': '', | |
'stax-api-1.0-2.jar': '', | |
'mail.jar': 'bundle:com.springsource.javax.mail;version="1.4.1"', | |
'activation-1.1.jar': 'package:javax.activation',// 'package:javax.activation;version="1.1.1"', | |
'activation.jar': '', //'package:javax.activation', | |
// web related | |
'standard-1.1.2.jar': '', //'bundle:com.springsource.javax.servlet.jsp.jstl;version="[1.1.0, 2.0.0)"', | |
'jstl-1.1.2.jar': '', | |
// misc | |
'oro-2.0.8.jar': 'bundle:com.springsource.org.apache.oro;version="[2.0.8, 2.1.0)"', | |
'ivy-2.1.0.jar': 'bundle:com.springsource.org.apache.ivy;version="[2.0, 2.2.0)"', | |
] | |
def springModulesConfig = [ | |
("org.springframework.aop-${springVersion}.jar".toString()) : 'bundle:org.springframework.aop;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.asm-${springVersion}.jar".toString()) : 'bundle:org.springframework.asm;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.aspects-${springVersion}.jar".toString()) : 'bundle:org.springframework.aspects;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.beans-${springVersion}.jar".toString()) : 'bundle:org.springframework.beans;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.context-${springVersion}.jar".toString()) : 'bundle:org.springframework.context;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.context.support-${springVersion}.jar".toString()) : 'bundle:org.springframework.context.support;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.core-${springVersion}.jar".toString()) : 'bundle:org.springframework.core;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.expression-${springVersion}.jar".toString()) : 'bundle:org.springframework.expression;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.instrument-${springVersion}.jar".toString()) : 'bundle:org.springframework.instrument;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.jdbc-${springVersion}.jar".toString()) : 'bundle:org.springframework.jdbc;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.jms-${springVersion}.jar".toString()) : 'bundle:org.springframework.jms;version="[3.0.0.RELEASE, 4.0.0)"', | |
// ("org.springframework.orm-${springVersion}.jar".toString()) : 'bundle:org.springframework.orm;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.oxm-${springVersion}.jar".toString()) : 'bundle:org.springframework.oxm;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.transaction-${springVersion}.jar".toString()) : 'bundle:org.springframework.transaction;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.web-${springVersion}.jar".toString()) : 'bundle:org.springframework.web;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.web.servlet-${springVersion}.jar".toString()) : 'bundle:org.springframework.web.servlet;version="[3.0.0.RELEASE, 4.0.0)"', | |
("org.springframework.web.portlet-${springVersion}.jar".toString()) : 'bundle:org.springframework.web.portlet;version="[3.0.0.RELEASE, 4.0.0)"', | |
] | |
def persistenceModulesConfig = [ | |
'hibernate-annotations-3.4.0.GA.jar': '', // this is a fragment to the core hibernate module... 'bundle:com.springsource.org.hibernate.annotations;version="[3.4.0,3.5.0)"', | |
'hibernate-commons-annotations-3.3.0.ga.jar': 'bundle:com.springsource.org.hibernate.annotations.common;version="[3.3.0,3.4.0)"', | |
'hibernate-commons-annotations-3.1.0.GA.jar': 'bundle:com.springsource.org.hibernate.annotations.common;version="[3.3.0,3.4.0)"', | |
'hibernate-core-3.3.1.GA.jar': 'bundle:com.springsource.org.hibernate;version="[3.3.1,3.4.0)"', | |
'hibernate-ehcache-3.3.1.GA.jar': '', // this is a fragment to the core hibernate module... 'bundle:com.springsource.org.hibernate.cache;version="[3.3.0,3.5.0)",com.springsource.net.sf.ehcache;version="[1.6.2,1.8.0)"', | |
("org.springframework.orm-${springVersion}.jar".toString()) : 'bundle:org.springframework.orm;version="[3.0.0.RELEASE, 4.0.0)"', | |
'ejb3-persistence-1.0.2.GA.jar': 'bundle:com.springsource.javax.persistence;version="[1.0.0,2.0.0)"', | |
] | |
def groovyModulesConfig = [ | |
'groovy-all-1.6.7.jar': 'bundle:groovy-all;version="1.6.7"', | |
'groovy-all-1.7.3.jar': 'bundle:groovy-all;version="1.7.3"', | |
] | |
def grailsModulesConfig = [ | |
'grails-bootstrap-1.2.0.jar': '', | |
// 'grails-core-1.2.0.jar': 'bundle:org.grails.osgi;version="[1.2.0,2.0.0)"', // bundle contains core and bootstrap | |
// 'grails-crud-1.2.0.jar': 'bundle:org.grails.crud;version="[1.2.0,2.0.0)"', | |
//// 'grails-docs-1.2.0.jar': 'bundle:org.grails.docs;version="[1.2.0,2.0.0)"', | |
// 'grails-gorm-1.2.0.jar': 'bundle:org.grails.gorm;version="[1.2.0,2.0.0)"', | |
// 'grails-resources-1.2.0.jar': 'bundle:org.grails.resources;version="[1.2.0,2.0.0)"', | |
// 'grails-spring-1.2.0.jar': 'bundle:org.grails.spring;version="[1.2.0,2.0.0)"', | |
// 'grails-web-1.2.0.jar': 'bundle:org.grails.web;version="[1.2.0,2.0.0)"', | |
'grails-bootstrap-1.2.1.jar': '', | |
// 'grails-core-1.2.1.jar': 'bundle:org.grails.osgi;version="[1.2.0,2.0.0)"', // bundle contains core and bootstrap | |
// 'grails-crud-1.2.1.jar': 'bundle:org.grails.crud;version="[1.2.0,2.0.0)"', | |
//// 'grails-docs-1.2.1.jar': 'bundle:org.grails.docs;version="[1.2.0,2.0.0)"', | |
// 'grails-gorm-1.2.1.jar': 'bundle:org.grails.gorm;version="[1.2.0,2.0.0)"', | |
// 'grails-resources-1.2.1.jar': 'bundle:org.grails.resources;version="[1.2.0,2.0.0)"', | |
// 'grails-spring-1.2.1.jar': 'bundle:org.grails.spring;version="[1.2.0,2.0.0)"', | |
// 'grails-web-1.2.1.jar': 'bundle:org.grails.web;version="[1.2.0,2.0.0)"', | |
] | |
def miscGrailsModulesConfig = [ | |
//'ehcache-core-1.7.1.jar': '', | |
//'facebook-java-api-2.0.4.jar': '', | |
//'facebook-java-api-schema-2.0.4.jar': '', | |
//'hsqldb-1.8.0.10.jar': '', | |
//'htmlparser-1.6.jar': '', | |
//'icu4j-3.4.4.jar': '', | |
//'java-openid-sxip-0.9.4-rebuilt.jar': '', | |
//'json-20070829.jar': '', | |
//'jug-1.1.2.jar': '', | |
//'nekohtml-1.9.12.jar': '', | |
//'openxri-client-1.0.1.jar': '', | |
//'openxri-syntax-1.0.1.jar': '', | |
//'recaptcha4j-0.0.7.jar': '', | |
//'shiro-all-1.0-incubating-SNAPSHOT.jar': '', | |
'sitemesh-2.4.jar': 'bundle:com.springsource.com.opensymphony.sitemesh;version="[2.4.0, 2.5.0)"', | |
] | |
def blockedModulesConfig = [ | |
// Equinox and OSGi framework | |
'org.eclipse.osgi-3.6.0.v20100517.jar': '', | |
'org.osgi.compendium-4.2.0.jar': '', | |
// tools (bnd, PAX) | |
'bndlib-0.0.357.jar': '', | |
'pax-swissbox-bnd-1.2.0.jar': '', | |
'pax-swissbox-optional-jcl-1.2.0.jar': '', | |
'pax-swissbox-tinybundles-1.2.0.jar': '', | |
'ops4j-base-io-1.2.1.jar': '', | |
'ops4j-base-lang-1.2.1.jar': '', | |
'ops4j-base-store-1.2.1.jar': '', | |
// Spring DM | |
'spring-osgi-core-2.0.0.M1.jar': '', | |
'spring-osgi-io-2.0.0.M1.jar': '', | |
] | |
def tomcatModulesConfig = [ | |
// Tomcat | |
'catalina-ant.jar': '', | |
'jasper-jdt.jar': '', | |
'tomcat-core.jar': '', | |
'tomcat-dbcp.jar': '', | |
'tomcat-jasper.jar': '', | |
'tomcat-juli-adapters.jar': '', | |
'tomcat-juli.jar': '', | |
] | |
def packagingMode = BuildSettingsHolder.getSettings()?.config?.grails?.plugins?.osgi?.packagingMode | |
if (!packagingMode) { | |
packagingMode = 'basic' | |
} | |
eventCreateWarStart = { warName, stagingDir -> | |
def moduleConfig = [:] | |
switch (packagingMode) { | |
case 'modular': | |
// replace some libs by importing bundles or packages | |
moduleConfig << blockedModulesConfig | |
moduleConfig << tomcatModulesConfig | |
moduleConfig << commonModulesConfig | |
moduleConfig << springModulesConfig | |
moduleConfig << persistenceModulesConfig | |
moduleConfig << groovyModulesConfig | |
moduleConfig << grailsModulesConfig | |
moduleConfig << miscGrailsModulesConfig | |
break | |
case 'basic': | |
// we put everything but Spring and its dependencies into the bundled war file | |
moduleConfig << blockedModulesConfig | |
moduleConfig << tomcatModulesConfig | |
moduleConfig << commonModulesConfig | |
moduleConfig << springModulesConfig | |
break | |
case 'monolithic': | |
// we put everything into the bundled war file | |
moduleConfig << blockedModulesConfig | |
break | |
default: | |
println "unknown packaging mode: $packagingMode" | |
break | |
} | |
println "packaging application $grailsAppName as $packagingMode bundle" | |
String metaInfo = "$stagingDir/META-INF" | |
ant.mkdir(dir:metaInfo) | |
String manifestFile = "$metaInfo/MANIFEST.MF" | |
ant.manifest(file:manifestFile) { | |
// OSGi bundle headers | |
attribute(name:"Bundle-ManifestVersion",value:"2") | |
attribute(name:"Bundle-Name",value:"${grailsAppName}") | |
attribute(name:"Bundle-SymbolicName",value:"${grailsAppName}") | |
attribute(name:"Bundle-Version",value:"${metadata.getApplicationVersion()}") | |
// add all jars in WEB-INF/lib | |
def libDir = new File("${stagingDir}/WEB-INF/lib") | |
def libs = [] | |
libDir.eachFileMatch(~/.*\.jar/) { libs << it.name } | |
// "." must be first element of bundle class path | |
// in order to support resource loading | |
def classPathEntries = [ ".", "WEB-INF/classes" ] | |
def importedBundleList = [] | |
def exportedPackageList = [] | |
def importedPackageList = [ | |
// web upport | |
"javax.servlet;$servletImportSpecs", | |
"javax.servlet.http;$servletImportSpecs", | |
"javax.servlet.resources;$servletImportSpecs", | |
"javax.servlet.jsp;$jspImportSpecs", | |
"javax.servlet.jsp.el;$jspImportSpecs", | |
"javax.servlet.jsp.jstl.core;$jstlImportSpecs", | |
"javax.servlet.jsp.jstl.fmt;$jstlImportSpecs", | |
"javax.servlet.jsp.jstl.sql;$jstlImportSpecs", | |
"javax.servlet.jsp.jstl.tlv;$jstlImportSpecs", | |
"javax.servlet.jsp.tagext;$jspImportSpecs", | |
"javax.servlet.jsp.resources;$jspImportSpecs", | |
// XML parsing | |
"javax.xml.parsers", | |
"org.w3c.dom", | |
"org.xml.sax", | |
"org.xml.sax.ext", | |
"org.xml.sax.helpers", | |
"org.apache.xml.security;$optional", | |
"org.apache.xml.security.exceptions;$optional", | |
// OSGi related | |
"org.osgi.framework;$osgiImportSpecs;$optional", | |
// Spring OSGi related | |
"org.springframework.context;$springImportSpecs", | |
"org.springframework.web.context;$springImportSpecs", | |
"org.springframework.osgi.context;$springDMImportSpecs", | |
"org.springframework.osgi.web.context.support;$springDMImportSpecs", | |
// logging | |
"org.apache.log4j", | |
"org.apache.log4j.xml", | |
"org.apache.log4j.helpers", | |
"org.apache.log4j.jdbc;$optional", | |
"org.apache.log4j.varia;$optional", | |
] | |
// TODO make configurable | |
def includeJars = false | |
if (includeJars) { | |
libs.each { lib -> | |
classPathEntries << "WEB-INF/lib/${lib}" | |
} | |
} | |
else { | |
def replacedLibs = [] | |
libs.each { lib -> | |
// check whether we have a replacement bundle for a lib | |
def replacement = moduleConfig.get(lib) | |
if (replacement != null) { | |
if (replacement.size() == 0) { | |
// empty replacement -> skip jar | |
// TODO remove println | |
println "skipping $lib" | |
} | |
else if (replacement.toString().startsWith('bundle:')) { | |
replacement = replacement.substring('bundle:'.length()) | |
// TODO remove println | |
println "importing bundle $replacement instead of $lib" | |
importedBundleList << replacement | |
} | |
else if (replacement.toString().startsWith('package:')) { | |
replacement = replacement.substring('package:'.length()) | |
// TODO remove println | |
println "importing package $replacement instead of $lib" | |
importedPackageList << replacement | |
} | |
else if (replacement.toString().startsWith('export:')) { | |
replacement = replacement.substring('export:'.length()) | |
// TODO remove println | |
println "exporting package $replacement" | |
exportedPackageList << replacement | |
} | |
else { | |
// TODO remove println | |
println "undefined replacement for $lib: $replacement" | |
} | |
replacedLibs << lib | |
} | |
else { | |
classPathEntries << "WEB-INF/lib/${lib}" | |
} | |
} | |
replacedLibs.each { lib -> | |
// TODO remove println | |
println "removing replaced lib $lib" | |
new File(libDir, lib)?.delete() | |
} | |
} | |
def classPath = classPathEntries.join(',') | |
if (classPath) { | |
attribute(name:"Bundle-ClassPath",value:"${classPath}") | |
} | |
def importedPackages = importedPackageList.join(',') | |
if (importedPackages) { | |
attribute(name:"Import-Package", value:"${importedPackages}") | |
} | |
def exportedPackages = exportedPackageList.join(',') | |
if (exportedPackages) { | |
attribute(name:"Export-Package", value:"${exportedPackages}") | |
} | |
def importedBundles = importedBundleList.join(',') | |
if (importedBundles) { | |
attribute(name:"Require-Bundle", value:"${importedBundles}") | |
} | |
attribute(name:"Webapp-Context",value:"${grailsAppName}") | |
} | |
// here we create spring config files defining namespace handlers | |
println "creating surrogate spring.handlers and spring.schemas" | |
// this works, as the Spring bundles are referenced in header Require-Bundle | |
// TODO remove this hack | |
// the correct way is to lookup the namespace handler provider service from | |
// the OSGi service registry and hand it to BeanBuilder | |
File metaInfoDir = new File(metaInfo) | |
new File(metaInfoDir, "spring.handlers").withWriter { out -> | |
out << """# default spring handlers | |
# org.springframework.aop | |
http\\://www.springframework.org/schema/aop=org.springframework.aop.config.AopNamespaceHandler | |
# org.springframework.beans | |
http\\://www.springframework.org/schema/p=org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler | |
http\\://www.springframework.org/schema/util=org.springframework.beans.factory.xml.UtilNamespaceHandler | |
# org.springframework.context | |
http\\://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler | |
http\\://www.springframework.org/schema/jee=org.springframework.ejb.config.JeeNamespaceHandler | |
http\\://www.springframework.org/schema/lang=org.springframework.scripting.config.LangNamespaceHandler | |
http\\://www.springframework.org/schema/task=org.springframework.scheduling.config.TaskNamespaceHandler | |
# org.springframework.jdbc | |
http\\://www.springframework.org/schema/jdbc=org.springframework.jdbc.config.JdbcNamespaceHandler | |
# org.springframework.jms | |
http\\://www.springframework.org/schema/jms=org.springframework.jms.config.JmsNamespaceHandler | |
# org.springframework.orm | |
caution: filename not matched: META-INF/spring.handlers | |
# org.springframework.oxm | |
http\\://www.springframework.org/schema/oxm=org.springframework.oxm.config.OxmNamespaceHandler | |
# org.springframework.transaction | |
http\\://www.springframework.org/schema/tx=org.springframework.transaction.config.TxNamespaceHandler | |
# org.springframework.web.servlet | |
http\\://www.springframework.org/schema/mvc=org.springframework.web.servlet.config.MvcNamespaceHandler | |
""" | |
} | |
new File(metaInfoDir, "spring.schemas").withWriter { out -> | |
out << """# default spring schema locations | |
# org.springframework.aop | |
http\\://www.springframework.org/schema/aop/spring-aop-2.0.xsd=org/springframework/aop/config/spring-aop-2.0.xsd | |
http\\://www.springframework.org/schema/aop/spring-aop-2.5.xsd=org/springframework/aop/config/spring-aop-2.5.xsd | |
http\\://www.springframework.org/schema/aop/spring-aop-3.0.xsd=org/springframework/aop/config/spring-aop-3.0.xsd | |
http\\://www.springframework.org/schema/aop/spring-aop.xsd=org/springframework/aop/config/spring-aop-3.0.xsd | |
# org.springframework.beans | |
http\\://www.springframework.org/schema/beans/spring-beans-2.0.xsd=org/springframework/beans/factory/xml/spring-beans-2.0.xsd | |
http\\://www.springframework.org/schema/beans/spring-beans-2.5.xsd=org/springframework/beans/factory/xml/spring-beans-2.5.xsd | |
http\\://www.springframework.org/schema/beans/spring-beans-3.0.xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd | |
http\\://www.springframework.org/schema/beans/spring-beans.xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd | |
http\\://www.springframework.org/schema/tool/spring-tool-2.0.xsd=org/springframework/beans/factory/xml/spring-tool-2.0.xsd | |
http\\://www.springframework.org/schema/tool/spring-tool-2.5.xsd=org/springframework/beans/factory/xml/spring-tool-2.5.xsd | |
http\\://www.springframework.org/schema/tool/spring-tool-3.0.xsd=org/springframework/beans/factory/xml/spring-tool-3.0.xsd | |
http\\://www.springframework.org/schema/tool/spring-tool.xsd=org/springframework/beans/factory/xml/spring-tool-3.0.xsd | |
http\\://www.springframework.org/schema/util/spring-util-2.0.xsd=org/springframework/beans/factory/xml/spring-util-2.0.xsd | |
http\\://www.springframework.org/schema/util/spring-util-2.5.xsd=org/springframework/beans/factory/xml/spring-util-2.5.xsd | |
http\\://www.springframework.org/schema/util/spring-util-3.0.xsd=org/springframework/beans/factory/xml/spring-util-3.0.xsd | |
http\\://www.springframework.org/schema/util/spring-util.xsd=org/springframework/beans/factory/xml/spring-util-3.0.xsd | |
# org.springframework.context | |
http\\://www.springframework.org/schema/context/spring-context-2.5.xsd=org/springframework/context/config/spring-context-2.5.xsd | |
http\\://www.springframework.org/schema/context/spring-context-3.0.xsd=org/springframework/context/config/spring-context-3.0.xsd | |
http\\://www.springframework.org/schema/context/spring-context.xsd=org/springframework/context/config/spring-context-3.0.xsd | |
http\\://www.springframework.org/schema/jee/spring-jee-2.0.xsd=org/springframework/ejb/config/spring-jee-2.0.xsd | |
http\\://www.springframework.org/schema/jee/spring-jee-2.5.xsd=org/springframework/ejb/config/spring-jee-2.5.xsd | |
http\\://www.springframework.org/schema/jee/spring-jee-3.0.xsd=org/springframework/ejb/config/spring-jee-3.0.xsd | |
http\\://www.springframework.org/schema/jee/spring-jee.xsd=org/springframework/ejb/config/spring-jee-3.0.xsd | |
http\\://www.springframework.org/schema/lang/spring-lang-2.0.xsd=org/springframework/scripting/config/spring-lang-2.0.xsd | |
http\\://www.springframework.org/schema/lang/spring-lang-2.5.xsd=org/springframework/scripting/config/spring-lang-2.5.xsd | |
http\\://www.springframework.org/schema/lang/spring-lang-3.0.xsd=org/springframework/scripting/config/spring-lang-3.0.xsd | |
http\\://www.springframework.org/schema/lang/spring-lang.xsd=org/springframework/scripting/config/spring-lang-3.0.xsd | |
http\\://www.springframework.org/schema/task/spring-task-3.0.xsd=org/springframework/scheduling/config/spring-task-3.0.xsd | |
http\\://www.springframework.org/schema/task/spring-task.xsd=org/springframework/scheduling/config/spring-task-3.0.xsd | |
# org.springframework.jdbc | |
http\\://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd=org/springframework/jdbc/config/spring-jdbc-3.0.xsd | |
http\\://www.springframework.org/schema/jdbc/spring-jdbc.xsd=org/springframework/jdbc/config/spring-jdbc-3.0.xsd | |
# org.springframework.jms | |
http\\://www.springframework.org/schema/jms/spring-jms-2.5.xsd=org/springframework/jms/config/spring-jms-2.5.xsd | |
http\\://www.springframework.org/schema/jms/spring-jms-3.0.xsd=org/springframework/jms/config/spring-jms-3.0.xsd | |
http\\://www.springframework.org/schema/jms/spring-jms.xsd=org/springframework/jms/config/spring-jms-3.0.xsd | |
# org.springframework.oxm | |
http\\://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd=org/springframework/oxm/config/spring-oxm-3.0.xsd | |
http\\://www.springframework.org/schema/oxm/spring-oxm.xsd=org/springframework/oxm/config/spring-oxm-3.0.xsd | |
# org.springframework.transaction | |
http\\://www.springframework.org/schema/tx/spring-tx-2.0.xsd=org/springframework/transaction/config/spring-tx-2.0.xsd | |
http\\://www.springframework.org/schema/tx/spring-tx-2.5.xsd=org/springframework/transaction/config/spring-tx-2.5.xsd | |
http\\://www.springframework.org/schema/tx/spring-tx-3.0.xsd=org/springframework/transaction/config/spring-tx-3.0.xsd | |
http\\://www.springframework.org/schema/tx/spring-tx.xsd=org/springframework/transaction/config/spring-tx-3.0.xsd | |
# org.springframework.web.servlet | |
http\\://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd=org/springframework/web/servlet/config/spring-mvc-3.0.xsd | |
http\\://www.springframework.org/schema/mvc/spring-mvc.xsd=org/springframework/web/servlet/config/spring-mvc-3.0.xsd | |
""" | |
} | |
} | |
// dummy event handler to get available properties | |
/* | |
eventPluginLoadEnd = { | |
binding?.variables?.each { name, value -> | |
try { | |
println "############## prop $name: $value (${value?.getClass()?.name})" | |
} | |
catch (Throwable t) { | |
// ignore | |
} | |
} | |
} | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment