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


Reply via email to