Author: stefanegli
Date: Fri Sep 27 13:31:16 2013
New Revision: 1526896
URL: http://svn.apache.org/r1526896
Log:
SLING-3104 : ensuring proper (ie valid) java package name is generated out of
groupdId/artifactId (while the user doesn't type anything in the java package
field him/her-self
Modified:
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java
Modified:
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java
URL:
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java?rev=1526896&r1=1526895&r2=1526896&view=diff
==============================================================================
---
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java
(original)
+++
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java
Fri Sep 27 13:31:16 2013
@@ -19,6 +19,7 @@ package org.apache.sling.ide.eclipse.ui.
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
+import java.util.StringTokenizer;
import org.apache.maven.archetype.catalog.Archetype;
import org.apache.maven.archetype.metadata.RequiredProperty;
@@ -101,9 +102,9 @@ public class ArchetypeParametersWizardPa
dialogChanged();
if (!javaPackageModified) {
if (artifactId.getText().length()==0) {
-
javaPackage.setText(groupId.getText());
+
javaPackage.setText(getDefaultJavaPackage(groupId.getText(), ""));
} else {
-
javaPackage.setText(groupId.getText()+"."+artifactId.getText());
+
javaPackage.setText(getDefaultJavaPackage(groupId.getText(),
artifactId.getText()));
}
}
}
@@ -118,10 +119,13 @@ public class ArchetypeParametersWizardPa
artifactId.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
dialogChanged();
+ if (javaPackageModified) {
+ return;
+ }
if (groupId.getText().length()==0) {
-
javaPackage.setText(artifactId.getText());
+
javaPackage.setText(getDefaultJavaPackage("", artifactId.getText()));
} else {
-
javaPackage.setText(groupId.getText()+"."+artifactId.getText());
+
javaPackage.setText(getDefaultJavaPackage(groupId.getText(),
artifactId.getText()));
}
}
});
@@ -327,5 +331,25 @@ public class ArchetypeParametersWizardPa
}
return p;
}
+
+ public static String getDefaultJavaPackage(String groupId, String
artifactId) {
+ String name = (artifactId.isEmpty()) ? groupId :
groupId+"."+artifactId;
+ StringBuffer sb = new StringBuffer();
+ StringTokenizer st = new StringTokenizer(name.replaceAll("-",
"_"), ".");
+ while(st.hasMoreTokens()) {
+ String part = st.nextToken();
+ while(part.length()>0 &&
!Character.isJavaIdentifierStart(part.charAt(0))) {
+ part = part.substring(1);
+ }
+ if (part.length()==0) {
+ continue;
+ }
+ if (sb.length()!=0) {
+ sb.append(".");
+ }
+ sb.append(part);
+ }
+ return sb.toString();
+ }
}
\ No newline at end of file