Set<String> jaxrsProviderModules = new TreeSet<String>(); for (DeploymentModule deploymentModule : deploymentModules) { debug("initializing enunciate module %s.", deploymentModule.getName()); deploymentModule.init(this); if (!deploymentModule.isDisabled() && deploymentModule instanceof SpecProviderModule) { if (((SpecProviderModule) deploymentModule).isJaxwsProvider()) { jaxwsProviderModules.add(deploymentModule.getName()); jaxrsProviderModules.add(deploymentModule.getName());
/** * Compares modules by order, then by name. * * @param module1 The first module. * @param module2 The second module. * @return The comparison. */ public int compare(DeploymentModule module1, DeploymentModule module2) { int comparison = module1.getOrder() - module2.getOrder(); if (comparison == 0) { String name1 = module1.getName() == null ? "" : module1.getName(); String name2 = module2.getName() == null ? "" : module2.getName(); comparison = name1.compareTo(name2); } return comparison; } }
/** * Initialize each module. * * @param deploymentModules The deployment modules. */ protected void initModules(List<DeploymentModule> deploymentModules) throws EnunciateException, IOException { info("\n\nInitializing Enunciate mechanism."); for (DeploymentModule deploymentModule : deploymentModules) { debug("Initializing module %s.", deploymentModule.getName()); deploymentModule.init(this); } }
/** * Do the package logic. */ protected void doPackage() throws IOException, EnunciateException { File packageDir = getPackageDir(); if (packageDir == null) { packageDir = createTempDir(); debug("No package directory specified, assigned %s.", packageDir); setPackageDir(packageDir); } if (packageDir.equals(getBuildDir())) { throw new EnunciateException("The package output directory cannot be the same as the build directory. " + "(BTW, if you don't specify a package output directory, a suitable temp directory wil be created for you.)"); } for (DeploymentModule deploymentModule : this.config.getAllModules()) { if (!deploymentModule.isDisabled()) { debug("Invoking %s step for module %s", Target.PACKAGE, deploymentModule.getName()); if (deploymentModule instanceof FacetAware) { setupFacetFilter((FacetAware) deploymentModule); } deploymentModule.step(Target.PACKAGE); FacetFilter.clear(); } else { debug("Not invoking %s step for module %s (module is disabled).", Target.PACKAGE, deploymentModule.getName()); } } }
/** * Do the package logic. * * @param deploymentModules The deployment modules to use. */ protected void doPackage(List<DeploymentModule> deploymentModules) throws IOException, EnunciateException { File packageDir = getPackageDir(); if (packageDir == null) { packageDir = createTempDir(); debug("No package directory specified, assigned %s.", packageDir); setPackageDir(packageDir); } if (packageDir.equals(getBuildDir())) { throw new EnunciateException("The package output directory cannot be the same as the build directory. " + "(BTW, if you don't specify a package output directory, a suitable temp directory wil be created for you.)"); } for (DeploymentModule deploymentModule : deploymentModules) { debug("Invoking %s step for module %s", Target.PACKAGE, deploymentModule.getName()); deploymentModule.step(Target.PACKAGE); } }
debug("Default validator added to the chain."); for (DeploymentModule module : config.getEnabledModules()) { Validator moduleValidator = module.getValidator(); if (moduleValidator != null) { if (moduleValidator instanceof ConfigurableRules) { ((ConfigurableRules)moduleValidator).disableRules(disabledRules); validator.addValidator(module.getName(), moduleValidator); debug("Validator for module %s added to the chain.", module.getName());
@Override protected void doGenerate() throws IOException, EnunciateException { super.doGenerate(); Set<String> excludedExtensions = getExcludedProjectExtensions(); for (DeploymentModule module : getConfig().getAllModules()) { if (!module.isDisabled() && (module instanceof ProjectExtensionModule) && !excludedExtensions.contains(module.getName())) { ProjectExtensionModule extensions = (ProjectExtensionModule) module; for (File projectSource : extensions.getProjectSources()) { addSourceDirToProject(projectSource); } for (File testSource : extensions.getProjectTestSources()) { project.addTestCompileSourceRoot(testSource.getAbsolutePath()); } for (File resourceDir : extensions.getProjectResourceDirectories()) { Resource restResource = new Resource(); restResource.setDirectory(resourceDir.getAbsolutePath()); project.addResource(restResource); } for (File resourceDir : extensions.getProjectTestResourceDirectories()) { Resource resource = new Resource(); resource.setDirectory(resourceDir.getAbsolutePath()); project.addTestResource(resource); } } } }
String pattern = String.format("enunciate/modules/%s", module.getName()); digester.addRule(pattern, new PushModuleRule(module)); digester.addSetProperties(pattern); if (module.getAliases() != null) { for (String alias : module.getAliases()) { pattern = String.format("enunciate/modules/%s", alias); digester.addRule(pattern, new PushModuleRule(module)); RuleSet configRules = module.getConfigurationRules(); if (configRules != null) { digester.addRuleSet(configRules);
/** * The list of enabled modules in the configuration. * * @return The list of enabled modules in the configuration. */ public List<DeploymentModule> getEnabledModules() { ArrayList<DeploymentModule> enabledModules = new ArrayList<DeploymentModule>(); for (DeploymentModule module : getAllModules()) { if (!module.isDisabled()) { enabledModules.add(module); } } return enabledModules; }
/** * Whether the specified module is enabled. * * @param moduleName The name of the module. * @return Whether the module is enabled. */ public boolean isModuleEnabled(String moduleName) { if (this.config != null) { for (DeploymentModule module : this.config.getEnabledModules()) { if (module.getName().equals(moduleName)) { return true; } } } return false; }
String pattern = String.format("enunciate/modules/%s", module.getName()); digester.addRule(pattern, new PushModuleRule(module)); digester.addSetProperties(pattern); RuleSet configRules = module.getConfigurationRules(); if (configRules != null) { digester.addRuleSet(configRules);
/** * Do the build logic. */ protected void doBuild() throws IOException, EnunciateException { File buildDir = getBuildDir(); if (buildDir == null) { buildDir = createTempDir(); debug("No build directory specified, assigned %s.", buildDir); setBuildDir(buildDir); } if (buildDir.equals(getCompileDir())) { throw new EnunciateException("The build output directory cannot be the same as the compile directory. " + "(BTW, if you don't specify a build output directory, a suitable temp directory wil be created for you.)"); } for (DeploymentModule deploymentModule : this.config.getAllModules()) { if (!deploymentModule.isDisabled()) { debug("Invoking %s step for module %s", Target.BUILD, deploymentModule.getName()); if (deploymentModule instanceof FacetAware) { setupFacetFilter((FacetAware) deploymentModule); } deploymentModule.step(Target.BUILD); FacetFilter.clear(); } else { debug("Not invoking %s step for module %s (module is disabled).", Target.BUILD, deploymentModule.getName()); } } }
/** * Do the build logic. * * @param deploymentModules The deployment modules to use. */ protected void doBuild(List<DeploymentModule> deploymentModules) throws IOException, EnunciateException { File buildDir = getBuildDir(); if (buildDir == null) { buildDir = createTempDir(); debug("No build directory specified, assigned %s.", buildDir); setBuildDir(buildDir); } if (buildDir.equals(getCompileDir())) { throw new EnunciateException("The build output directory cannot be the same as the compile directory. " + "(BTW, if you don't specify a build output directory, a suitable temp directory wil be created for you.)"); } for (DeploymentModule deploymentModule : deploymentModules) { debug("Invoking %s step for module %s", Target.BUILD, deploymentModule.getName()); deploymentModule.step(Target.BUILD); } }
/** * Logic for handling the closing of the Enunciate mechanism. Closes the modules and exports * the artifacts. * * @param deploymentModules The deployment modules to close. */ protected void doClose(List<DeploymentModule> deploymentModules) throws EnunciateException, IOException { info("\n\nClosing Enunciate mechanism."); for (DeploymentModule deploymentModule : deploymentModules) { debug("Closing module %s.", deploymentModule.getName()); deploymentModule.close(); } HashSet<String> exportedArtifacts = new HashSet<String>(); for (Artifact artifact : artifacts) { String artifactId = artifact.getId(); if (this.exports.containsKey(artifactId)) { File dest = this.exports.get(artifactId); info("\n\nExporting artifact %s to %s.", artifactId, dest); artifact.exportTo(dest, this); exportedArtifacts.add(artifactId); } } for (String export : this.exports.keySet()) { if (!exportedArtifacts.remove(export)) { warn("WARNING: Unknown artifact '%s'. Artifact will not be exported.", export); } } }
debug("Default validator added to the chain."); for (DeploymentModule module : config.getEnabledModules()) { Validator moduleValidator = module.getValidator(); if (moduleValidator != null) { validator.addValidator(moduleValidator); debug("Validator for module %s added to the chain.", module.getName());
/** * The list of enabled modules in the configuration. * * @return The list of enabled modules in the configuration. */ public List<DeploymentModule> getEnabledModules() { ArrayList<DeploymentModule> enabledModules = new ArrayList<DeploymentModule>(); for (DeploymentModule module : getAllModules()) { if (!module.isDisabled()) { enabledModules.add(module); } } return enabledModules; }
/** * Whether the specified module is enabled. * * @param moduleName The name of the module. * @return Whether the module is enabled. */ public boolean isModuleEnabled(String moduleName) { if (this.config != null) { for (DeploymentModule module : this.config.getEnabledModules()) { if (module.getName().equals(moduleName)) { return true; } } } return false; }
/** * Do the compile logic. */ protected void doCompile() throws IOException, EnunciateException { File destdir = getCompileDir(); if (destdir == null) { destdir = createTempDir(); debug("No compile directory specified, assigned %s.", destdir); setCompileDir(destdir); } if (compileDir.equals(getBuildDir())) { throw new EnunciateException("The compile output directory cannot be the same as the generate directory. " + "(BTW, if you don't specify a compile output directory, a suitable temp directory wil be created for you.)"); } for (DeploymentModule deploymentModule : this.config.getAllModules()) { if (!deploymentModule.isDisabled()) { debug("Invoking %s step for module %s", Target.COMPILE, deploymentModule.getName()); if (deploymentModule instanceof FacetAware) { setupFacetFilter((FacetAware) deploymentModule); } deploymentModule.step(Target.COMPILE); FacetFilter.clear(); } else { debug("Not invoking %s step for module %s (module is disabled).", Target.COMPILE, deploymentModule.getName()); } } }
/** * Do the compile logic. * * @param deploymentModules The deployment modules to use. */ protected void doCompile(List<DeploymentModule> deploymentModules) throws IOException, EnunciateException { File destdir = getCompileDir(); if (destdir == null) { destdir = createTempDir(); debug("No compile directory specified, assigned %s.", destdir); setCompileDir(destdir); } if (compileDir.equals(getBuildDir())) { throw new EnunciateException("The compile output directory cannot be the same as the generate directory. " + "(BTW, if you don't specify a compile output directory, a suitable temp directory wil be created for you.)"); } for (DeploymentModule deploymentModule : deploymentModules) { debug("Invoking %s step for module %s", Target.COMPILE, deploymentModule.getName()); deploymentModule.step(Target.COMPILE); } }