? admin.log ? build Index: src/java/com/sun/enterprise/admin/servermgmt/pe/PEDomainsManager.java =================================================================== RCS file: /cvs/glassfish/admin/servermgmt/src/java/com/sun/enterprise/admin/servermgmt/pe/PEDomainsManager.java,v retrieving revision 1.22 diff -u -r1.22 PEDomainsManager.java --- src/java/com/sun/enterprise/admin/servermgmt/pe/PEDomainsManager.java 30 Jul 2007 22:00:37 -0000 1.22 +++ src/java/com/sun/enterprise/admin/servermgmt/pe/PEDomainsManager.java 25 Oct 2007 00:45:51 -0000 @@ -62,6 +62,7 @@ import com.sun.enterprise.admin.util.TokenValueSet; import com.sun.enterprise.config.serverbeans.ServerValidationHandler; +import com.sun.enterprise.deployment.xml.DTDRegistry; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.util.ArrayList; @@ -90,8 +91,9 @@ private static final String NAME_DELIMITER = ","; /* These properties are public interfaces, handle with care */ - public static final String PROFILEPROPERTY_DOMAINXML_STYLESHEETS = "domain.xml.style-sheets"; - public static final String PROFILEPROPERTY_DOMAINXML_TOKENVALUES = "domain.xml.token-values"; + public static final String PROFILEPROPERTY_DOMAINXML_STYLESHEETS = "domain.xml.style-sheets"; + public static final String PROFILEPROPERTY_DOMAINXML_TOKENVALUES = "domain.xml.token-values"; + public static final String PROFILEPROPERTY_DEFFAULTWEBXML_STYLESHEETS = "default-web.xml.style-sheets"; /* These properties are public interfaces, handle with care */ public PEDomainsManager() @@ -344,8 +346,12 @@ tr = new File(pf, layout.DOMAIN_XML_FILE); } else { //now transform for generic xsl + final Properties erkeys = new Properties(); + erkeys.setProperty(OutputKeys.DOCTYPE_PUBLIC, ServerValidationHandler.SERVER_DTD_PUBLIC_ID); + erkeys.setProperty(OutputKeys.DOCTYPE_SYSTEM, ServerValidationHandler.SERVER_DTD_SYSTEM_ID); + final EntityResolver er = new ServerValidationHandler(); tr = invokeGenericXmlTemplateProcessing(dxt, domainConfig, - PROFILEPROPERTY_DOMAINXML_STYLESHEETS, layout.getConfigRoot()); + PROFILEPROPERTY_DOMAINXML_STYLESHEETS, layout.getConfigRoot(), erkeys, er); addTokenValuesIfAny(tokens, layout, p, this.PROFILEPROPERTY_DOMAINXML_TOKENVALUES); } generateFromTemplate(tokens, tr, dx); @@ -474,14 +480,37 @@ try { FileUtils.copy(src, dest); + overlayAndValidateProfileSpecificDefaultWebXml(domainConfig, src, dest); } catch (IOException ioe) { throw new DomainException( strMgr.getString("defaultWebXmlNotCreated"), ioe); } + catch (ProfileTransformationException pe) { + //set the template back + try { + FileUtils.copy(src, dest); + } catch (IOException ii) { + //ignore? + } + } + } + private void overlayAndValidateProfileSpecificDefaultWebXml(DomainConfig dc, File src, File dest) + throws IOException, DomainException, ProfileTransformationException { + /* transforms the default.xml that is passed in, according to style sheets */ + String pn = (String)dc.get(DomainConfig.K_PROFILE); + File ppf = getFileLayout(dc).getProfilePropertiesFile(pn); + if (ppf.exists()) { + final Properties erkeys = new Properties(); + erkeys.setProperty(OutputKeys.DOCTYPE_PUBLIC, DTDRegistry.SUN_WEBAPP_230_DTD_PUBLIC_ID); + erkeys.setProperty(OutputKeys.DOCTYPE_SYSTEM, DTDRegistry.SUN_WEBAPP_230_DTD_SYSTEM_ID); + final EntityResolver er = null; //TBD + File transformed = invokeGenericXmlTemplateProcessing (src, dc, + PROFILEPROPERTY_DEFFAULTWEBXML_STYLESHEETS, getFileLayout(dc).getConfigRoot(), erkeys, er); + FileUtils.copy(transformed, dest); + } } - protected void createLoginConf( RepositoryConfig config) throws DomainException { @@ -668,7 +697,7 @@ } private File invokeGenericXmlTemplateProcessing(final File base, final DomainConfig - dc, final String propName, final File destDir) + dc, final String propName, final File destDir, Properties erkeys, EntityResolver er) throws ProfileTransformationException { final PEFileLayout layout = getFileLayout(dc); final String profileName = dc.getProfile(); @@ -679,11 +708,7 @@ System.out.println(msg); final File propsFile = layout.getProfilePropertiesFile(profileName); final List styleSheets = getStyleSheetList(profileFolder, propsFile, propName); - final Properties p = new Properties(); - p.setProperty(OutputKeys.DOCTYPE_PUBLIC, ServerValidationHandler.SERVER_DTD_PUBLIC_ID); - p.setProperty(OutputKeys.DOCTYPE_SYSTEM, ServerValidationHandler.SERVER_DTD_SYSTEM_ID); - final EntityResolver er = new ServerValidationHandler(); - final ProfileTransformer px = new ProfileTransformer(base, styleSheets, destDir, er, p); + final ProfileTransformer px = new ProfileTransformer(base, styleSheets, destDir, er, erkeys); final File transformed = px.transform(); return ( transformed ); }