[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform.rcp] Is my RCP app compliant with the Eclipse license ?

Hi !

I am developping a RCP app which I intend to make commercial (not for
large public, just clients of a society).

It's gonna be an amazing work load for me so, before I go to far, I
would like to know if my actual code is compliant with the Eclipse
license or if I need to change something. I carefully read docs about
licensing, but there are a few points I am not completely sure of :

1) I use several eclipse plugins, but one isn't intended to be part of
the RCP platform : org.eclipse.ui.ide. I have understood it is more a
technical limitation (many dependencies on internal classes) than a
strict limitation. Am I right ?


2) Anyway, I use it cause my app is a kind of IDE, so I use IResource and workspace and the IDE plugin offers me powerfull class and methods to manage it, so it makes my job really easier.

Because it is not designed to be part of RCP Platform, I had to find
workarounds to use it and sometimes my code is derivated of Eclipse code.

One particular example is the custom explorer view that I a
have developped : I need of course the same global actions
(RenameAction, CopyAction, PasteAction, DeleteAction) that the one found
in ResourceNavigator. Althought I do not use the same approach as
Eclipse to manage these global actions (I have several limitations I
impose to users and the objects manipulated aren't Java files), their
goals are the same and of course the heart of their implementation is
similar to Eclipse one (we use the same calls to IResource.delete for
example). My problem is that reading Eclipse implementation of these
actions, I saw the bugs encountered by the team and resolved, the "best
practices" they used and so on and of course I am not going to let such
bugs in my code.

In other words, most of the code of the action is different but the call
to rename/delete/copy is often similar to what you find in Eclipse code
and sometimes clearly derivated from Eclipse code. See example below to
understand :

<snippet from the run() method of my RenameAction>

	...
	
	String newName = queryNewResourceName(currentResource);
        if (newName == null || newName.equals(""))
            return;
        newPath = currentResource.getFullPath().removeLastSegments(1)
                .append(newName);
	absoluteNewPath =
		currentResource.getLocation().removeLastSegments(1)
				.append(newName);

	    try {
	     WorkspaceModifyOperation op = new
					WorkspaceModifyOperation() {
		public void execute(IProgressMonitor monitor) {
		  try { 					
			rename(currentResource, monitor);
		  } catch (CoreException e) {
			e.printStackTrace();
		  }
		}
	      };
	      new ProgressMonitorJobsDialog(workbench
		.getActiveWorkbenchWindow().getShell())
			.run(true, true, op);
	    } catch (InterruptedException e) {
	        return;
	    } catch (InvocationTargetException e) {
	        e.printStackTrace();
	    }
	}

	...

This piece of code is derived from Eclipse's RenameResourceAction,
althought many differences exists and the rest of the code is totally
different of Eclipse code. But I really need to call Eclipse classes
(WorkspaceModifyOperation) that simplify my job and of course these
calls are often similar to what you can find in Eclipse code.

Am I allowed to write such code ? Do I need to put a copyright of
Eclipse on that class (or deliver it under open source license) or is
the code considered "general purpose" enough ? (except the classes
involved, such calls aren't specific to Eclipse and I could have written
the same code without having read Eclipse classes in fact).


3) Last point : I use Eclipse icons till now. But am I allowed to use them in a commercial application ? I can find to ways I use these icons : in their original context (global actions for example) and sometimes out of their original context (a custom wizard will use another Eclipse wizard icon for example).


Could someone give me an advise on these points ?


TIA


-- Arnaud