plugins/org.apache.geronimo.st.core/src/main/java/org/apache/geronimo/st/core/operations/SharedLibEntryCreationOperation.java [100:173]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
		Trace.trace(Trace.INFO, ">> SharedLibEntryCreationOperation.execute()", Activator.traceOperations);
		
		this.monitor = ProgressUtil.getMonitorFor(monitor);
		this.monitor.beginTask("Processing in-place shared libraries.", 100);
		
		IModule[] modules = (IModule[]) model.getProperty(MODULES);
		this.server = (IServer) model.getProperty(SERVER);
		
		HashMap<File, File> addList = new HashMap<File, File>();
		List<File> deleteList = new ArrayList<File>();
		
		try {
			String sharedLibPath = getSharedLibPath();
			if(sharedLibPath == null) 
				return Status.CANCEL_STATUS;
			
			sharedLibLocation = server.getRuntime().getLocation().append(sharedLibPath);
			
			for(int i = 0; i < modules.length; i++) {
				IModule module = modules[i];
				IProject project = module.getProject();
				
				File dummyJarFile = sharedLibLocation.append(project.getName() + ".eclipse.jar").toFile();
				// delete the dummy jar if module no longer associated with server
				if (!ServerUtil.containsModule(server, module, monitor) && dummyJarFile.exists()) {
					deleteList.add(dummyJarFile);
				} else {
					HashSet entries = new HashSet();
					J2EEFlexProjDeployable j2eeModule = (J2EEFlexProjDeployable) module.loadAdapter(J2EEFlexProjDeployable.class, null);
					if(GeronimoUtils.isEarModule(module)) {
						IModule[] childModules = j2eeModule.getChildModules();
						for(int j = 0; j < modules.length; j++) {
							entries.addAll(processModule(childModules[i]));
						}
					} else {
						entries.addAll(processModule(module));
					}

					// regen the jar only if required
					if (regenerate(dummyJarFile, entries)) {
						TEMP_LOCATION.toFile().mkdirs();
						File temp = TEMP_LOCATION.append(project.getName() + ".eclipse.jar").toFile();
						Trace.trace(Trace.INFO, "Updating external sharedlib entries for " + module.getName(), Activator.traceOperations);
						if(temp.exists())
							delete(temp);
						Manifest manifest = new Manifest();
						Attributes attributes = manifest.getMainAttributes();
						attributes.put(Attributes.Name.MANIFEST_VERSION, "1.0");
						attributes.put(Attributes.Name.CLASS_PATH, getCPEntriesAsString(entries));
						JarOutputStream os = new JarOutputStream(new FileOutputStream(temp), manifest);
						os.flush();
						os.close();
						addList.put(temp, dummyJarFile);
					}
				}
			}
			
			updateAndRecycleSharedLib(addList, deleteList);
			
		}catch (CoreException e){
			IStatus status = e.getStatus();
			Trace.trace(Trace.ERROR, status.getMessage(), e, Activator.logOperations);
			throw new ExecutionException(status.getMessage(), e);
		}catch (Exception e) {
			Trace.trace(Trace.ERROR, "Failure in updating shared library.", e, Activator.logOperations);
			throw new ExecutionException("Failure in updating shared library", e);
		} finally {
			monitor.done();
		}
		
		Trace.trace(Trace.INFO, "<< SharedLibEntryCreationOperation.execute()", Activator.traceOperations);
		return Status.OK_STATUS;
	}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/operations/SharedLibEntryCreationOperation.java [100:173]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
        Trace.trace(Trace.INFO, ">> SharedLibEntryCreationOperation.execute()", Activator.traceOperations);
        
        this.monitor = ProgressUtil.getMonitorFor(monitor);
        this.monitor.beginTask("Processing in-place shared libraries.", 100);
        
        IModule[] modules = (IModule[]) model.getProperty(MODULES);
        this.server = (IServer) model.getProperty(SERVER);
        
        HashMap<File, File> addList = new HashMap<File, File>();
        List<File> deleteList = new ArrayList<File>();
        
        try {
            String sharedLibPath = getSharedLibPath();
            if(sharedLibPath == null) 
                return Status.CANCEL_STATUS;
            
            sharedLibLocation = server.getRuntime().getLocation().append(sharedLibPath);
            
            for(int i = 0; i < modules.length; i++) {
                IModule module = modules[i];
                IProject project = module.getProject();
                
                File dummyJarFile = sharedLibLocation.append(project.getName() + ".eclipse.jar").toFile();
                // delete the dummy jar if module no longer associated with server
                if (!ServerUtil.containsModule(server, module, monitor) && dummyJarFile.exists()) {
                    deleteList.add(dummyJarFile);
                } else {
                    HashSet entries = new HashSet();
                    J2EEFlexProjDeployable j2eeModule = (J2EEFlexProjDeployable) module.loadAdapter(J2EEFlexProjDeployable.class, null);
                    if(GeronimoUtils.isEarModule(module)) {
                        IModule[] childModules = j2eeModule.getChildModules();
                        for(int j = 0; j < modules.length; j++) {
                            entries.addAll(processModule(childModules[i]));
                        }
                    } else {
                        entries.addAll(processModule(module));
                    }

                    // regen the jar only if required
                    if (regenerate(dummyJarFile, entries)) {
                        TEMP_LOCATION.toFile().mkdirs();
                        File temp = TEMP_LOCATION.append(project.getName() + ".eclipse.jar").toFile();
                        Trace.trace(Trace.INFO, "Updating external sharedlib entries for " + module.getName(), Activator.traceOperations);
                        if(temp.exists())
                            delete(temp);
                        Manifest manifest = new Manifest();
                        Attributes attributes = manifest.getMainAttributes();
                        attributes.put(Attributes.Name.MANIFEST_VERSION, "1.0");
                        attributes.put(Attributes.Name.CLASS_PATH, getCPEntriesAsString(entries));
                        JarOutputStream os = new JarOutputStream(new FileOutputStream(temp), manifest);
                        os.flush();
                        os.close();
                        addList.put(temp, dummyJarFile);
                    }
                }
            }
            
            updateAndRecycleSharedLib(addList, deleteList);
            
        }catch (CoreException e){
            IStatus status = e.getStatus();
            Trace.trace(Trace.ERROR, status.getMessage(), e, Activator.logOperations);
            throw new ExecutionException(status.getMessage(), e);
        }catch (Exception e) {
            Trace.trace(Trace.ERROR, "Failure in updating shared library.", e, Activator.logOperations);
            throw new ExecutionException("Failure in updating shared library", e);
        } finally {
            monitor.done();
        }
        
        Trace.trace(Trace.INFO, "<< SharedLibEntryCreationOperation.execute()", Activator.traceOperations);
        return Status.OK_STATUS;
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



