/** * 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; } }
/** * 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; } }
/** * 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; }
/** * 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; }
/** * 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); } }
Set<String> jaxrsProviderModules = new TreeSet<String>(); for (DeploymentModule deploymentModule : deploymentModules) { debug("initializing enunciate module %s.", deploymentModule.getName()); deploymentModule.init(this); jaxwsProviderModules.add(deploymentModule.getName()); jaxrsProviderModules.add(deploymentModule.getName());
info("closing enunciate."); for (DeploymentModule deploymentModule : this.config.getAllModules()) { debug("closing enunciate module %s.", deploymentModule.getName()); deploymentModule.close();
/** * 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); } } }
/** * 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); } }
/** * 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); } }
/** * 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); } }
/** * 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 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 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()); } } }
@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); } } } }
@Override public void process() { try { getRootModel(); EnunciateConfiguration config = this.enunciate.getConfig(); for (DeploymentModule module : config.getEnabledModules()) { debug("Invoking %s step for module %s", Enunciate.Target.GENERATE, module.getName()); module.step(Enunciate.Target.GENERATE); } } catch (TemplateException e) { process(e); } catch (IOException e) { process(e); } catch (EnunciateException e) { process(e); } catch (RuntimeException re) { process(re); } }
debug("Invoking %s step for module %s", Enunciate.Target.GENERATE, module.getName());
String pattern = String.format("enunciate/modules/%s", module.getName()); digester.addRule(pattern, new PushModuleRule(module)); digester.addSetProperties(pattern);
if (moduleValidator != null) { validator.addValidator(moduleValidator); debug("Validator for module %s added to the chain.", module.getName());