protected Data getExtensionData(ServiceExtensionDescriptionType desc, ServiceInformation info) throws CodegenExtensionException { ExtensionTypeExtensionData extData = ExtensionTools.getExtensionData(desc, info); Data data = null; try { data = ExtensionDataUtils.getExtensionData(extData); } catch (Exception ex) { throw new CodegenExtensionException("Error getting extension data: " + ex.getMessage(), ex); } return data; }
protected void modifyEclipseClasspath( ServiceExtensionDescriptionType desc, ServiceInformation info) throws CodegenExtensionException { // get the eclipse classpath document File classpathFile = new File(info.getBaseDirectory(), ".classpath"); if (classpathFile.exists()) { logger.info("Modifying eclipse .classpath file"); Set<File> libs = new HashSet<File>(); ExtensionTypeExtensionData data = ExtensionTools.getExtensionData(desc, info); AdditionalLibraries additionalLibs = null; try { additionalLibs = ExtensionDataUtils.getExtensionData(data).getAdditionalLibraries(); } catch (Exception ex) { throw new CodegenExtensionException("Error retrieving extension data"); } if (additionalLibs != null && additionalLibs.getJarName() != null) { for (int i = 0; i < additionalLibs.getJarName().length; i++) { String jarFilename = additionalLibs.getJarName(i); libs.add(new File(info.getBaseDirectory(), "lib" + File.separator + jarFilename)); } } File[] libFiles = new File[libs.size()]; libs.toArray(libFiles); try { logger.info("Adding libraries to classpath file:"); for (int i = 0; i < libFiles.length; i++) { logger.info("\t" + libFiles[i].getAbsolutePath()); } ExtensionUtilities.syncEclipseClasspath(classpathFile, libFiles); } catch (Exception ex) { throw new CodegenExtensionException( "Error modifying Eclipse .classpath file: " + ex.getMessage(), ex); } } else { logger.warn("Eclipse .classpath file " + classpathFile.getAbsolutePath() + " not found!"); } }