geronimo-xbean-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gno...@apache.org
Subject svn commit: r1393346 [4/8] - in /geronimo/xbean/trunk: ./ maven-xbean-plugin/ maven-xbean-plugin/src/main/java/org/apache/xbean/maven/ xbean-asm-shaded/src/main/appended-resources/META-INF/ xbean-blueprint/ xbean-blueprint/src/main/java/org/apache/xbea...
Date Wed, 03 Oct 2012 08:38:37 GMT
Modified: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/MapMapping.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/MapMapping.java?rev=1393346&r1=1393345&r2=1393346&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/MapMapping.java (original)
+++ geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/MapMapping.java Wed Oct  3 08:38:26 2012
@@ -1,57 +1,57 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.xbean.spring.generator;
-
-public class MapMapping {
-    private String entryName;
-    private String keyName;
-    private boolean flat;
-    private String dupsMode;
-    private String defaultKey;
-
-    public MapMapping(String entryName, 
-                      String keyName, 
-                      boolean flat, 
-                      String dupsMode, 
-                      String defaultKey) {
-        this.entryName = entryName;
-        this.keyName = keyName;
-        this.flat = flat;
-        this.dupsMode = dupsMode;
-        this.defaultKey = defaultKey;
-    }
-
-    public String getEntryName() {
-        return entryName;
-    }
-
-    public String getKeyName() {
-        return keyName;
-    }
-
-    public boolean isFlat() {
-        return flat;
-    }
-
-    public String getDupsMode() {
-        return dupsMode;
-    }
-
-    public String getDefaultKey() {
-        return defaultKey;
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.xbean.spring.generator;
+
+public class MapMapping {
+    private String entryName;
+    private String keyName;
+    private boolean flat;
+    private String dupsMode;
+    private String defaultKey;
+
+    public MapMapping(String entryName, 
+                      String keyName, 
+                      boolean flat, 
+                      String dupsMode, 
+                      String defaultKey) {
+        this.entryName = entryName;
+        this.keyName = keyName;
+        this.flat = flat;
+        this.dupsMode = dupsMode;
+        this.defaultKey = defaultKey;
+    }
+
+    public String getEntryName() {
+        return entryName;
+    }
+
+    public String getKeyName() {
+        return keyName;
+    }
+
+    public boolean isFlat() {
+        return flat;
+    }
+
+    public String getDupsMode() {
+        return dupsMode;
+    }
+
+    public String getDefaultKey() {
+        return defaultKey;
+    }
+}

Propchange: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/MapMapping.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/ParameterMapping.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/ParameterMapping.java?rev=1393346&r1=1393345&r2=1393346&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/ParameterMapping.java (original)
+++ geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/ParameterMapping.java Wed Oct  3 08:38:26 2012
@@ -1,38 +1,38 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.xbean.spring.generator;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ParameterMapping {
-    private final String name;
-    private final Type type;
-
-    public ParameterMapping(String name, Type type) {
-        this.name = name;
-        this.type = type;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public Type getType() {
-        return type;
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.xbean.spring.generator;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ParameterMapping {
+    private final String name;
+    private final Type type;
+
+    public ParameterMapping(String name, Type type) {
+        this.name = name;
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public Type getType() {
+        return type;
+    }
+}

Propchange: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/ParameterMapping.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/WikiDocumentationGenerator.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/WikiDocumentationGenerator.java?rev=1393346&r1=1393345&r2=1393346&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/WikiDocumentationGenerator.java (original)
+++ geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/WikiDocumentationGenerator.java Wed Oct  3 08:38:26 2012
@@ -1,212 +1,212 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.xbean.spring.generator;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-/**
- * @author Hiram Chirino
- * @version $Id$
- * @since 1.0
- */
-public class WikiDocumentationGenerator implements GeneratorPlugin {
-    private final File destFile;
-    private LogFacade log;
-
-    public WikiDocumentationGenerator(File destFile) {
-        this.destFile = destFile;
-    }
-
-    public void generate(NamespaceMapping namespaceMapping) throws IOException {
-        String namespace = namespaceMapping.getNamespace();
-        File file = new File(destFile.getParentFile(), destFile.getName() + ".wiki");
-        log.log("Generating WIKI documentation file: " + file + " for namespace: " + namespace);
-        PrintWriter out = new PrintWriter(new FileWriter(file));
-        try {
-            generateDocumentation(out, namespaceMapping);
-        } finally {
-            out.close();
-        }
-    }
-
-    private void generateDocumentation(PrintWriter out, NamespaceMapping namespaceMapping) {
-        HashMap refercencedTypes = new HashMap();
-    	
-        // Build of map of types that are referenced by element types. 
-        for (Iterator iter = namespaceMapping.getElements().iterator(); iter.hasNext();) {
-            ElementMapping element = (ElementMapping) iter.next();
-            for (Iterator iterator = element.getAttributes().iterator(); iterator.hasNext();) {
-                AttributeMapping attribute = (AttributeMapping) iterator.next();
-                Type type = getNestedType( attribute.getType() );
-				
-                if( namespaceMapping.isSimpleType( type) )
-                    continue;
-				
-                if( !refercencedTypes.containsKey(type.getName()) )
-                    refercencedTypes.put(type.getName(), new ArrayList());
-            }
-        }
-        
-        // Add all the elements that implement those types.
-        for (Iterator iter = refercencedTypes.entrySet().iterator(); iter.hasNext();) {
-        	
-            Map.Entry entry = (Map.Entry) iter.next();
-            String type = (String) entry.getKey();
-            ArrayList implementations = (ArrayList) entry.getValue();
-
-            for (Iterator iterator = namespaceMapping.getElements().iterator(); iterator.hasNext();) {
-                ElementMapping element = (ElementMapping) iterator.next();
-	            
-                // Check to see if the class is matches
-                boolean matched=false;
-                if (type.equals(element.getClassName())) {
-                    implementations.add(element);
-                    matched=true;
-                }
-	            
-                // Perhaps a super class matches.
-                if(!matched) {
-                    for (Iterator j = element.getSuperClasses().iterator(); j.hasNext();) {
-                        String t = (String) j.next();
-                        if( type.equals(t) ) {
-                            implementations.add(element);
-                            matched=true;
-                            break;
-                        }
-                    }
-                }
-	            
-                // Or it might be an interface.
-                if(!matched) {
-                    for (Iterator j = element.getInterfaces().iterator(); j.hasNext();) {
-                        String t = (String) j.next();
-                        if( type.equals(t) ) {
-                            implementations.add(element);
-                            matched=true;
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-        
-        // Remove any entries that did not have associated elements
-        for (Iterator iter = refercencedTypes.values().iterator(); iter.hasNext();) {        	
-            ArrayList implementations = (ArrayList) iter.next();
-            if( implementations.isEmpty() )
-                iter.remove();
-        }        
-
-        generateElementsByType(out, namespaceMapping, refercencedTypes);
-        generateElementsDetail(out, namespaceMapping, refercencedTypes);
-        generateElementsIndex(out, namespaceMapping, refercencedTypes);
-    }
-
-    private Type getNestedType(Type type) {
-        if( type.isCollection() ) {
-            return getNestedType(type.getNestedType());
-        } else {
-            return type;
-        }
-    }
-    
-    private void generateElementsByType(PrintWriter out, NamespaceMapping namespaceMapping, HashMap refercencedTypes) {
-        out.println("h3. Elements By Type");
-        for (Iterator iter = refercencedTypes.entrySet().iterator(); iter.hasNext();) {
-            Entry entry = (Entry) iter.next();
-            String className = (String) entry.getKey();
-            Collection elements = (Collection) entry.getValue();
-
-            out.println("{anchor:"+className+"-types}");
-            out.println("h4. The _["+className+"|#"+className+"-types]_ Type Implementations");
-
-            for (Iterator iterator = elements.iterator(); iterator.hasNext();) {
-                ElementMapping element = (ElementMapping) iterator.next();
-                out.println("    | _[<"+element.getElementName() +">|#"+element.getElementName() +"-element]_ | {html}"+element.getDescription()+"{html} |");
-            }
-            out.println();        	
-        }
-        out.println();
-    }
-
-	private void generateElementsIndex(PrintWriter out, NamespaceMapping namespaceMapping, HashMap refercencedTypes) {
-    	
-        out.println("h3. Element Index");
-        for (Iterator iter = namespaceMapping.getElements().iterator(); iter.hasNext();) {
-            ElementMapping element = (ElementMapping) iter.next();
-        	out.println("    | _[<"+element.getElementName() +">|#"+element.getElementName() +"-element]_ | {html}"+element.getDescription()+"{html} |");
-        }
-        out.println();
-    }
-
-    private void generateElementsDetail(PrintWriter out, NamespaceMapping namespaceMapping, HashMap refercencedTypes) {
-        for (Iterator iter = namespaceMapping.getElements().iterator(); iter.hasNext();) {
-            ElementMapping element = (ElementMapping) iter.next();
-            generateElementDetail(out, namespaceMapping, element, refercencedTypes);
-        }
-    }
-
-    private void generateElementDetail(PrintWriter out, NamespaceMapping namespaceMapping, ElementMapping element, HashMap refercencedTypes) {    
-
-        out.println("{anchor:" + element.getElementName() + "-element}");
-        out.println("h3. The _[<" + element.getElementName() + ">|#" + element.getElementName() + "-element]_ Element");
-
-        out.println("    {html}"+element.getDescription()+"{html}");
-
-        if( element.getAttributes().size() > 0 ) {
-            out.println("h4. Properties");
-            out.println("    || Property Name || Type || Description ||");
-
-            for ( Iterator iterator = element.getAttributes().iterator(); iterator.hasNext(); ) {
-                AttributeMapping attribute = (AttributeMapping) iterator.next();
-                Type type = attribute.getPropertyEditor() != null ? Type.newSimpleType(String.class.getName()): attribute.getType();
-                out.println("    | " + attribute.getAttributeName() + " | "+getTypeLink(type, refercencedTypes)+" | {html}"+attribute.getDescription()+"{html} |");	
-	          }
-        }
-        out.println();
-    }
-
-    private String getTypeLink(Type type, HashMap refercencedTypes) {
-        if (type.isCollection()) {
-            return "(" + getTypeLink(type.getNestedType(), refercencedTypes) +  ")\\*";
-        } else {
-        	  if( refercencedTypes.containsKey(type.getName()) ) {
-        		    return "_["+type.getName()+"|#"+type.getName()+"-types]_";
-        	  } else {
-                return "_"+type.getName()+"_";
-            }
-        }        
-    }
-
-    public LogFacade getLog() {
-        return log;
-    }
-
-    public void setLog(LogFacade log) {
-        this.log = log;
-    }
-}
-
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.xbean.spring.generator;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+/**
+ * @author Hiram Chirino
+ * @version $Id$
+ * @since 1.0
+ */
+public class WikiDocumentationGenerator implements GeneratorPlugin {
+    private final File destFile;
+    private LogFacade log;
+
+    public WikiDocumentationGenerator(File destFile) {
+        this.destFile = destFile;
+    }
+
+    public void generate(NamespaceMapping namespaceMapping) throws IOException {
+        String namespace = namespaceMapping.getNamespace();
+        File file = new File(destFile.getParentFile(), destFile.getName() + ".wiki");
+        log.log("Generating WIKI documentation file: " + file + " for namespace: " + namespace);
+        PrintWriter out = new PrintWriter(new FileWriter(file));
+        try {
+            generateDocumentation(out, namespaceMapping);
+        } finally {
+            out.close();
+        }
+    }
+
+    private void generateDocumentation(PrintWriter out, NamespaceMapping namespaceMapping) {
+        HashMap refercencedTypes = new HashMap();
+    	
+        // Build of map of types that are referenced by element types. 
+        for (Iterator iter = namespaceMapping.getElements().iterator(); iter.hasNext();) {
+            ElementMapping element = (ElementMapping) iter.next();
+            for (Iterator iterator = element.getAttributes().iterator(); iterator.hasNext();) {
+                AttributeMapping attribute = (AttributeMapping) iterator.next();
+                Type type = getNestedType( attribute.getType() );
+				
+                if( namespaceMapping.isSimpleType( type) )
+                    continue;
+				
+                if( !refercencedTypes.containsKey(type.getName()) )
+                    refercencedTypes.put(type.getName(), new ArrayList());
+            }
+        }
+        
+        // Add all the elements that implement those types.
+        for (Iterator iter = refercencedTypes.entrySet().iterator(); iter.hasNext();) {
+        	
+            Map.Entry entry = (Map.Entry) iter.next();
+            String type = (String) entry.getKey();
+            ArrayList implementations = (ArrayList) entry.getValue();
+
+            for (Iterator iterator = namespaceMapping.getElements().iterator(); iterator.hasNext();) {
+                ElementMapping element = (ElementMapping) iterator.next();
+	            
+                // Check to see if the class is matches
+                boolean matched=false;
+                if (type.equals(element.getClassName())) {
+                    implementations.add(element);
+                    matched=true;
+                }
+	            
+                // Perhaps a super class matches.
+                if(!matched) {
+                    for (Iterator j = element.getSuperClasses().iterator(); j.hasNext();) {
+                        String t = (String) j.next();
+                        if( type.equals(t) ) {
+                            implementations.add(element);
+                            matched=true;
+                            break;
+                        }
+                    }
+                }
+	            
+                // Or it might be an interface.
+                if(!matched) {
+                    for (Iterator j = element.getInterfaces().iterator(); j.hasNext();) {
+                        String t = (String) j.next();
+                        if( type.equals(t) ) {
+                            implementations.add(element);
+                            matched=true;
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        
+        // Remove any entries that did not have associated elements
+        for (Iterator iter = refercencedTypes.values().iterator(); iter.hasNext();) {        	
+            ArrayList implementations = (ArrayList) iter.next();
+            if( implementations.isEmpty() )
+                iter.remove();
+        }        
+
+        generateElementsByType(out, namespaceMapping, refercencedTypes);
+        generateElementsDetail(out, namespaceMapping, refercencedTypes);
+        generateElementsIndex(out, namespaceMapping, refercencedTypes);
+    }
+
+    private Type getNestedType(Type type) {
+        if( type.isCollection() ) {
+            return getNestedType(type.getNestedType());
+        } else {
+            return type;
+        }
+    }
+    
+    private void generateElementsByType(PrintWriter out, NamespaceMapping namespaceMapping, HashMap refercencedTypes) {
+        out.println("h3. Elements By Type");
+        for (Iterator iter = refercencedTypes.entrySet().iterator(); iter.hasNext();) {
+            Entry entry = (Entry) iter.next();
+            String className = (String) entry.getKey();
+            Collection elements = (Collection) entry.getValue();
+
+            out.println("{anchor:"+className+"-types}");
+            out.println("h4. The _["+className+"|#"+className+"-types]_ Type Implementations");
+
+            for (Iterator iterator = elements.iterator(); iterator.hasNext();) {
+                ElementMapping element = (ElementMapping) iterator.next();
+                out.println("    | _[<"+element.getElementName() +">|#"+element.getElementName() +"-element]_ | {html}"+element.getDescription()+"{html} |");
+            }
+            out.println();        	
+        }
+        out.println();
+    }
+
+	private void generateElementsIndex(PrintWriter out, NamespaceMapping namespaceMapping, HashMap refercencedTypes) {
+    	
+        out.println("h3. Element Index");
+        for (Iterator iter = namespaceMapping.getElements().iterator(); iter.hasNext();) {
+            ElementMapping element = (ElementMapping) iter.next();
+        	out.println("    | _[<"+element.getElementName() +">|#"+element.getElementName() +"-element]_ | {html}"+element.getDescription()+"{html} |");
+        }
+        out.println();
+    }
+
+    private void generateElementsDetail(PrintWriter out, NamespaceMapping namespaceMapping, HashMap refercencedTypes) {
+        for (Iterator iter = namespaceMapping.getElements().iterator(); iter.hasNext();) {
+            ElementMapping element = (ElementMapping) iter.next();
+            generateElementDetail(out, namespaceMapping, element, refercencedTypes);
+        }
+    }
+
+    private void generateElementDetail(PrintWriter out, NamespaceMapping namespaceMapping, ElementMapping element, HashMap refercencedTypes) {    
+
+        out.println("{anchor:" + element.getElementName() + "-element}");
+        out.println("h3. The _[<" + element.getElementName() + ">|#" + element.getElementName() + "-element]_ Element");
+
+        out.println("    {html}"+element.getDescription()+"{html}");
+
+        if( element.getAttributes().size() > 0 ) {
+            out.println("h4. Properties");
+            out.println("    || Property Name || Type || Description ||");
+
+            for ( Iterator iterator = element.getAttributes().iterator(); iterator.hasNext(); ) {
+                AttributeMapping attribute = (AttributeMapping) iterator.next();
+                Type type = attribute.getPropertyEditor() != null ? Type.newSimpleType(String.class.getName()): attribute.getType();
+                out.println("    | " + attribute.getAttributeName() + " | "+getTypeLink(type, refercencedTypes)+" | {html}"+attribute.getDescription()+"{html} |");	
+	          }
+        }
+        out.println();
+    }
+
+    private String getTypeLink(Type type, HashMap refercencedTypes) {
+        if (type.isCollection()) {
+            return "(" + getTypeLink(type.getNestedType(), refercencedTypes) +  ")\\*";
+        } else {
+        	  if( refercencedTypes.containsKey(type.getName()) ) {
+        		    return "_["+type.getName()+"|#"+type.getName()+"-types]_";
+        	  } else {
+                return "_"+type.getName()+"_";
+            }
+        }        
+    }
+
+    public LogFacade getLog() {
+        return log;
+    }
+
+    public void setLog(LogFacade log) {
+        this.log = log;
+    }
+}
+

Propchange: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/generator/WikiDocumentationGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/DefaultContext.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/DefaultContext.java?rev=1393346&r1=1393345&r2=1393346&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/DefaultContext.java (original)
+++ geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/DefaultContext.java Wed Oct  3 08:38:26 2012
@@ -1,452 +1,452 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.xbean.spring.jndi;
-
-import javax.naming.Binding;
-import javax.naming.CompositeName;
-import javax.naming.Context;
-import javax.naming.LinkRef;
-import javax.naming.Name;
-import javax.naming.NameClassPair;
-import javax.naming.NameNotFoundException;
-import javax.naming.NameParser;
-import javax.naming.NamingEnumeration;
-import javax.naming.NamingException;
-import javax.naming.NotContextException;
-import javax.naming.OperationNotSupportedException;
-import javax.naming.Reference;
-import javax.naming.spi.NamingManager;
-
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * A simple spring based JNDI context which is mutable
- *
- * @version $Revision: 657 $
- */
-public class DefaultContext implements Context, Serializable {
-
-    private static final long serialVersionUID = -5754338187296859149L;
-    protected static final NameParser nameParser = new NameParserImpl();
-
-    private boolean freeze = false;
-
-    protected final Hashtable environment;        // environment for this context
-    protected final Map bindings;         // bindings at my level
-    protected final Map treeBindings;     // all bindings under me
-
-    private boolean frozen = false;
-    private String nameInNamespace = "";
-    public static final String SEPARATOR = "/";
-
-    public DefaultContext() {
-        environment = new Hashtable();
-        bindings = new HashMap();
-        treeBindings = new HashMap();
-    }
-
-    public DefaultContext(Hashtable env) {
-        if (env == null) {
-            this.environment = new Hashtable();
-        }
-        else {
-            this.environment = new Hashtable(env);
-        }
-        this.bindings = new HashMap();
-        this.treeBindings = new HashMap();
-    }
-
-    public DefaultContext(Hashtable environment, Map bindings) {
-        if (environment == null) {
-            this.environment = new Hashtable();
-        }
-        else {
-            this.environment = new Hashtable(environment);
-        }
-        this.bindings = bindings;
-        treeBindings = new HashMap();
-        frozen = true;
-    }
-
-    public DefaultContext(Hashtable environment, Map bindings, String nameInNamespace) {
-        this(environment, bindings);
-        this.nameInNamespace = nameInNamespace;
-    }
-
-    protected DefaultContext(DefaultContext clone, Hashtable env) {
-        this.bindings = clone.bindings;
-        this.treeBindings = clone.treeBindings;
-        this.environment = new Hashtable(env);
-    }
-
-    protected DefaultContext(DefaultContext clone, Hashtable env, String nameInNamespace) {
-        this(clone, env);
-        this.nameInNamespace = nameInNamespace;
-    }
-
-    public Object addToEnvironment(String propName, Object propVal) throws NamingException {
-        return environment.put(propName, propVal);
-    }
-
-    public Hashtable getEnvironment() throws NamingException {
-        return (Hashtable) environment.clone();
-    }
-
-    public Object removeFromEnvironment(String propName) throws NamingException {
-        return environment.remove(propName);
-    }
-
-    public Object lookup(String name) throws NamingException {
-        if (name.length() == 0) {
-            return this;
-        }
-        Object result = treeBindings.get(name);
-        if (result == null) {
-            result = bindings.get(name);
-        }
-        if (result == null) {
-            int pos = name.indexOf(':');
-            if (pos > 0) {
-                String scheme = name.substring(0, pos);
-                Context ctx = NamingManager.getURLContext(scheme, environment);
-                if (ctx == null) {
-                    throw new NamingException("scheme " + scheme + " not recognized");
-                }
-                return ctx.lookup(name);
-            }
-            else {
-                // Split out the first name of the path
-                // and look for it in the bindings map.
-                CompositeName path = new CompositeName(name);
-
-                if (path.size() == 0) {
-                    return this;
-                }
-                else {
-                    String first = path.get(0);
-                    Object obj = bindings.get(first);
-                    if (obj == null) {
-                        throw new NameNotFoundException(name);
-                    }
-                    else if (obj instanceof Context && path.size() > 1) {
-                        Context subContext = (Context) obj;
-                        obj = subContext.lookup(path.getSuffix(1));
-                    }
-                    return obj;
-                }
-            }
-        }
-        if (result instanceof LinkRef) {
-            LinkRef ref = (LinkRef) result;
-            result = lookup(ref.getLinkName());
-        }
-        if (result instanceof Reference) {
-            try {
-                result = NamingManager.getObjectInstance(result, null, null, this.environment);
-            }
-            catch (NamingException e) {
-                throw e;
-            }
-            catch (Exception e) {
-                throw (NamingException) new NamingException("could not look up : " + name).initCause(e);
-            }
-        }
-        if (result instanceof DefaultContext) {
-            String prefix = getNameInNamespace();
-            if (prefix.length() > 0) {
-                prefix = prefix + SEPARATOR;
-            }
-            result = new DefaultContext((DefaultContext) result, environment, prefix + name);
-        }
-        return result;
-    }
-
-    public Object lookup(Name name) throws NamingException {
-        return lookup(name.toString());
-    }
-
-    public Object lookupLink(String name) throws NamingException {
-        return lookup(name);
-    }
-
-    public Name composeName(Name name, Name prefix) throws NamingException {
-        Name result = (Name) prefix.clone();
-        result.addAll(name);
-        return result;
-    }
-
-    public String composeName(String name, String prefix) throws NamingException {
-        CompositeName result = new CompositeName(prefix);
-        result.addAll(new CompositeName(name));
-        return result.toString();
-    }
-
-    public NamingEnumeration list(String name) throws NamingException {
-        Object o = lookup(name);
-        if (o == this) {
-            return new DefaultContext.ListEnumeration();
-        }
-        else if (o instanceof Context) {
-            return ((Context) o).list("");
-        }
-        else {
-            throw new NotContextException();
-        }
-    }
-
-    public NamingEnumeration listBindings(String name) throws NamingException {
-        Object o = lookup(name);
-        if (o == this) {
-            return new DefaultContext.ListBindingEnumeration();
-        }
-        else if (o instanceof Context) {
-            return ((Context) o).listBindings("");
-        }
-        else {
-            throw new NotContextException();
-        }
-    }
-
-    public Object lookupLink(Name name) throws NamingException {
-        return lookupLink(name.toString());
-    }
-
-    public NamingEnumeration list(Name name) throws NamingException {
-        return list(name.toString());
-    }
-
-    public NamingEnumeration listBindings(Name name) throws NamingException {
-        return listBindings(name.toString());
-    }
-
-    public void bind(Name name, Object value) throws NamingException {
-        bind(name.toString(), value);
-    }
-
-    public void bind(String name, Object value) throws NamingException {
-        checkFrozen();
-        internalBind(name, value);
-    }
-
-    public void close() throws NamingException {
-        // ignore
-    }
-
-    public Context createSubcontext(Name name) throws NamingException {
-        throw new OperationNotSupportedException();
-    }
-
-    public Context createSubcontext(String name) throws NamingException {
-        throw new OperationNotSupportedException();
-    }
-
-    public void destroySubcontext(Name name) throws NamingException {
-        throw new OperationNotSupportedException();
-    }
-
-    public void destroySubcontext(String name) throws NamingException {
-        throw new OperationNotSupportedException();
-    }
-
-    public String getNameInNamespace() throws NamingException {
-        return nameInNamespace;
-    }
-
-    public NameParser getNameParser(Name name) throws NamingException {
-        return nameParser;
-    }
-
-    public NameParser getNameParser(String name) throws NamingException {
-        return nameParser;
-    }
-
-    public void rebind(Name name, Object value) throws NamingException {
-        rebind(name.toString(), value);
-    }
-
-    public void rebind(String name, Object value) throws NamingException {
-        checkFrozen();
-        internalBind(name, value, true);
-    }
-
-    public void rename(Name oldName, Name newName) throws NamingException {
-        checkFrozen();
-        Object value = lookup(oldName);
-        unbind(oldName);
-        bind(newName, value);
-    }
-
-    public void rename(String oldName, String newName) throws NamingException {
-        Object value = lookup(oldName);
-        unbind(oldName);
-        bind(newName, value);
-    }
-
-    public void unbind(Name name) throws NamingException {
-        unbind(name.toString());
-    }
-
-    public void unbind(String name) throws NamingException {
-        checkFrozen();
-        internalBind(name, null, true);
-    }
-
-    private abstract class LocalNamingEnumeration implements NamingEnumeration {
-        private Iterator i = bindings.entrySet().iterator();
-
-        public boolean hasMore() throws NamingException {
-            return i.hasNext();
-        }
-
-        public boolean hasMoreElements() {
-            return i.hasNext();
-        }
-
-        protected Map.Entry getNext() {
-            return (Map.Entry) i.next();
-        }
-
-        public void close() throws NamingException {
-        }
-    }
-
-    private class ListEnumeration extends DefaultContext.LocalNamingEnumeration {
-        public Object next() throws NamingException {
-            return nextElement();
-        }
-
-        public Object nextElement() {
-            Map.Entry entry = getNext();
-            return new NameClassPair((String) entry.getKey(), entry.getValue().getClass().getName());
-        }
-    }
-
-    private class ListBindingEnumeration extends DefaultContext.LocalNamingEnumeration {
-        public Object next() throws NamingException {
-            return nextElement();
-        }
-
-        public Object nextElement() {
-            Map.Entry entry = getNext();
-            return new Binding((String) entry.getKey(), entry.getValue());
-        }
-    }
-
-    public Map getEntries() {
-        return new HashMap(bindings);
-    }
-
-    public void setEntries(Map entries) throws NamingException {
-        if (entries != null) {
-            for (Iterator iter = entries.entrySet().iterator(); iter.hasNext();) {
-                Map.Entry entry = (Map.Entry) iter.next();
-                String name = (String) entry.getKey();
-                Object value = entry.getValue();
-                internalBind(name, value);
-            }
-        }
-    }
-
-    public boolean isFreeze() {
-        return freeze;
-    }
-
-    public void setFreeze(boolean freeze) {
-        this.freeze = freeze;
-    }
-
-    /**
-     * internalBind is intended for use only during setup or possibly by suitably synchronized superclasses.
-     * It binds every possible lookup into a map in each context.  To do this, each context
-     * strips off one name segment and if necessary creates a new context for it. Then it asks that context
-     * to bind the remaining name.  It returns a map containing all the bindings from the next context, plus
-     * the context it just created (if it in fact created it). (the names are suitably extended by the segment
-     * originally lopped off).
-     *
-     * @param name
-     * @param value
-     * @return
-     * @throws javax.naming.NamingException
-     */
-    protected Map internalBind(String name, Object value) throws NamingException {
-        return internalBind(name, value, false);
-        
-    }
-    protected Map internalBind(String name, Object value, boolean allowRebind) throws NamingException {
-        
-        if (name == null || name.length() == 0){
-            throw new NamingException("Invalid Name " + name);
-        }
-        if (frozen){
-            throw new NamingException("Read only");
-        }
-
-        Map newBindings = new HashMap();
-        int pos = name.indexOf('/');
-        if (pos == -1) {
-            Object oldValue = treeBindings.put(name, value);
-            if (!allowRebind && oldValue != null) {
-                throw new NamingException("Something already bound at " + name);
-            }
-            bindings.put(name, value);
-            newBindings.put(name, value);
-        }
-        else {
-            String segment = name.substring(0, pos);
-          
-            if (segment == null || segment.length()==0){
-                throw new NamingException("Invalid segment " + segment);
-            }
-            Object o = treeBindings.get(segment);
-            if (o == null) {
-                o = newContext();
-                treeBindings.put(segment, o);
-                bindings.put(segment, o);
-                newBindings.put(segment, o);
-            }
-            else if (!(o instanceof DefaultContext)) {
-                throw new NamingException("Something already bound where a subcontext should go");
-            }
-            DefaultContext defaultContext = (DefaultContext) o;
-            String remainder = name.substring(pos + 1);
-            Map subBindings = defaultContext.internalBind(remainder, value, allowRebind);
-            for (Iterator iterator = subBindings.entrySet().iterator(); iterator.hasNext();) {
-                Map.Entry entry = (Map.Entry) iterator.next();
-                String subName = segment + "/" + (String) entry.getKey();
-                Object bound = entry.getValue();
-                treeBindings.put(subName, bound);
-                newBindings.put(subName, bound);
-            }
-        }
-        return newBindings;
-    }
-
-    protected void checkFrozen() throws OperationNotSupportedException {
-        if (isFreeze()) {
-            throw new OperationNotSupportedException("JNDI context is frozen!");
-        }
-    }
-
-    protected DefaultContext newContext() {
-        return new DefaultContext();
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.xbean.spring.jndi;
+
+import javax.naming.Binding;
+import javax.naming.CompositeName;
+import javax.naming.Context;
+import javax.naming.LinkRef;
+import javax.naming.Name;
+import javax.naming.NameClassPair;
+import javax.naming.NameNotFoundException;
+import javax.naming.NameParser;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.NotContextException;
+import javax.naming.OperationNotSupportedException;
+import javax.naming.Reference;
+import javax.naming.spi.NamingManager;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * A simple spring based JNDI context which is mutable
+ *
+ * @version $Revision: 657 $
+ */
+public class DefaultContext implements Context, Serializable {
+
+    private static final long serialVersionUID = -5754338187296859149L;
+    protected static final NameParser nameParser = new NameParserImpl();
+
+    private boolean freeze = false;
+
+    protected final Hashtable environment;        // environment for this context
+    protected final Map bindings;         // bindings at my level
+    protected final Map treeBindings;     // all bindings under me
+
+    private boolean frozen = false;
+    private String nameInNamespace = "";
+    public static final String SEPARATOR = "/";
+
+    public DefaultContext() {
+        environment = new Hashtable();
+        bindings = new HashMap();
+        treeBindings = new HashMap();
+    }
+
+    public DefaultContext(Hashtable env) {
+        if (env == null) {
+            this.environment = new Hashtable();
+        }
+        else {
+            this.environment = new Hashtable(env);
+        }
+        this.bindings = new HashMap();
+        this.treeBindings = new HashMap();
+    }
+
+    public DefaultContext(Hashtable environment, Map bindings) {
+        if (environment == null) {
+            this.environment = new Hashtable();
+        }
+        else {
+            this.environment = new Hashtable(environment);
+        }
+        this.bindings = bindings;
+        treeBindings = new HashMap();
+        frozen = true;
+    }
+
+    public DefaultContext(Hashtable environment, Map bindings, String nameInNamespace) {
+        this(environment, bindings);
+        this.nameInNamespace = nameInNamespace;
+    }
+
+    protected DefaultContext(DefaultContext clone, Hashtable env) {
+        this.bindings = clone.bindings;
+        this.treeBindings = clone.treeBindings;
+        this.environment = new Hashtable(env);
+    }
+
+    protected DefaultContext(DefaultContext clone, Hashtable env, String nameInNamespace) {
+        this(clone, env);
+        this.nameInNamespace = nameInNamespace;
+    }
+
+    public Object addToEnvironment(String propName, Object propVal) throws NamingException {
+        return environment.put(propName, propVal);
+    }
+
+    public Hashtable getEnvironment() throws NamingException {
+        return (Hashtable) environment.clone();
+    }
+
+    public Object removeFromEnvironment(String propName) throws NamingException {
+        return environment.remove(propName);
+    }
+
+    public Object lookup(String name) throws NamingException {
+        if (name.length() == 0) {
+            return this;
+        }
+        Object result = treeBindings.get(name);
+        if (result == null) {
+            result = bindings.get(name);
+        }
+        if (result == null) {
+            int pos = name.indexOf(':');
+            if (pos > 0) {
+                String scheme = name.substring(0, pos);
+                Context ctx = NamingManager.getURLContext(scheme, environment);
+                if (ctx == null) {
+                    throw new NamingException("scheme " + scheme + " not recognized");
+                }
+                return ctx.lookup(name);
+            }
+            else {
+                // Split out the first name of the path
+                // and look for it in the bindings map.
+                CompositeName path = new CompositeName(name);
+
+                if (path.size() == 0) {
+                    return this;
+                }
+                else {
+                    String first = path.get(0);
+                    Object obj = bindings.get(first);
+                    if (obj == null) {
+                        throw new NameNotFoundException(name);
+                    }
+                    else if (obj instanceof Context && path.size() > 1) {
+                        Context subContext = (Context) obj;
+                        obj = subContext.lookup(path.getSuffix(1));
+                    }
+                    return obj;
+                }
+            }
+        }
+        if (result instanceof LinkRef) {
+            LinkRef ref = (LinkRef) result;
+            result = lookup(ref.getLinkName());
+        }
+        if (result instanceof Reference) {
+            try {
+                result = NamingManager.getObjectInstance(result, null, null, this.environment);
+            }
+            catch (NamingException e) {
+                throw e;
+            }
+            catch (Exception e) {
+                throw (NamingException) new NamingException("could not look up : " + name).initCause(e);
+            }
+        }
+        if (result instanceof DefaultContext) {
+            String prefix = getNameInNamespace();
+            if (prefix.length() > 0) {
+                prefix = prefix + SEPARATOR;
+            }
+            result = new DefaultContext((DefaultContext) result, environment, prefix + name);
+        }
+        return result;
+    }
+
+    public Object lookup(Name name) throws NamingException {
+        return lookup(name.toString());
+    }
+
+    public Object lookupLink(String name) throws NamingException {
+        return lookup(name);
+    }
+
+    public Name composeName(Name name, Name prefix) throws NamingException {
+        Name result = (Name) prefix.clone();
+        result.addAll(name);
+        return result;
+    }
+
+    public String composeName(String name, String prefix) throws NamingException {
+        CompositeName result = new CompositeName(prefix);
+        result.addAll(new CompositeName(name));
+        return result.toString();
+    }
+
+    public NamingEnumeration list(String name) throws NamingException {
+        Object o = lookup(name);
+        if (o == this) {
+            return new DefaultContext.ListEnumeration();
+        }
+        else if (o instanceof Context) {
+            return ((Context) o).list("");
+        }
+        else {
+            throw new NotContextException();
+        }
+    }
+
+    public NamingEnumeration listBindings(String name) throws NamingException {
+        Object o = lookup(name);
+        if (o == this) {
+            return new DefaultContext.ListBindingEnumeration();
+        }
+        else if (o instanceof Context) {
+            return ((Context) o).listBindings("");
+        }
+        else {
+            throw new NotContextException();
+        }
+    }
+
+    public Object lookupLink(Name name) throws NamingException {
+        return lookupLink(name.toString());
+    }
+
+    public NamingEnumeration list(Name name) throws NamingException {
+        return list(name.toString());
+    }
+
+    public NamingEnumeration listBindings(Name name) throws NamingException {
+        return listBindings(name.toString());
+    }
+
+    public void bind(Name name, Object value) throws NamingException {
+        bind(name.toString(), value);
+    }
+
+    public void bind(String name, Object value) throws NamingException {
+        checkFrozen();
+        internalBind(name, value);
+    }
+
+    public void close() throws NamingException {
+        // ignore
+    }
+
+    public Context createSubcontext(Name name) throws NamingException {
+        throw new OperationNotSupportedException();
+    }
+
+    public Context createSubcontext(String name) throws NamingException {
+        throw new OperationNotSupportedException();
+    }
+
+    public void destroySubcontext(Name name) throws NamingException {
+        throw new OperationNotSupportedException();
+    }
+
+    public void destroySubcontext(String name) throws NamingException {
+        throw new OperationNotSupportedException();
+    }
+
+    public String getNameInNamespace() throws NamingException {
+        return nameInNamespace;
+    }
+
+    public NameParser getNameParser(Name name) throws NamingException {
+        return nameParser;
+    }
+
+    public NameParser getNameParser(String name) throws NamingException {
+        return nameParser;
+    }
+
+    public void rebind(Name name, Object value) throws NamingException {
+        rebind(name.toString(), value);
+    }
+
+    public void rebind(String name, Object value) throws NamingException {
+        checkFrozen();
+        internalBind(name, value, true);
+    }
+
+    public void rename(Name oldName, Name newName) throws NamingException {
+        checkFrozen();
+        Object value = lookup(oldName);
+        unbind(oldName);
+        bind(newName, value);
+    }
+
+    public void rename(String oldName, String newName) throws NamingException {
+        Object value = lookup(oldName);
+        unbind(oldName);
+        bind(newName, value);
+    }
+
+    public void unbind(Name name) throws NamingException {
+        unbind(name.toString());
+    }
+
+    public void unbind(String name) throws NamingException {
+        checkFrozen();
+        internalBind(name, null, true);
+    }
+
+    private abstract class LocalNamingEnumeration implements NamingEnumeration {
+        private Iterator i = bindings.entrySet().iterator();
+
+        public boolean hasMore() throws NamingException {
+            return i.hasNext();
+        }
+
+        public boolean hasMoreElements() {
+            return i.hasNext();
+        }
+
+        protected Map.Entry getNext() {
+            return (Map.Entry) i.next();
+        }
+
+        public void close() throws NamingException {
+        }
+    }
+
+    private class ListEnumeration extends DefaultContext.LocalNamingEnumeration {
+        public Object next() throws NamingException {
+            return nextElement();
+        }
+
+        public Object nextElement() {
+            Map.Entry entry = getNext();
+            return new NameClassPair((String) entry.getKey(), entry.getValue().getClass().getName());
+        }
+    }
+
+    private class ListBindingEnumeration extends DefaultContext.LocalNamingEnumeration {
+        public Object next() throws NamingException {
+            return nextElement();
+        }
+
+        public Object nextElement() {
+            Map.Entry entry = getNext();
+            return new Binding((String) entry.getKey(), entry.getValue());
+        }
+    }
+
+    public Map getEntries() {
+        return new HashMap(bindings);
+    }
+
+    public void setEntries(Map entries) throws NamingException {
+        if (entries != null) {
+            for (Iterator iter = entries.entrySet().iterator(); iter.hasNext();) {
+                Map.Entry entry = (Map.Entry) iter.next();
+                String name = (String) entry.getKey();
+                Object value = entry.getValue();
+                internalBind(name, value);
+            }
+        }
+    }
+
+    public boolean isFreeze() {
+        return freeze;
+    }
+
+    public void setFreeze(boolean freeze) {
+        this.freeze = freeze;
+    }
+
+    /**
+     * internalBind is intended for use only during setup or possibly by suitably synchronized superclasses.
+     * It binds every possible lookup into a map in each context.  To do this, each context
+     * strips off one name segment and if necessary creates a new context for it. Then it asks that context
+     * to bind the remaining name.  It returns a map containing all the bindings from the next context, plus
+     * the context it just created (if it in fact created it). (the names are suitably extended by the segment
+     * originally lopped off).
+     *
+     * @param name
+     * @param value
+     * @return
+     * @throws javax.naming.NamingException
+     */
+    protected Map internalBind(String name, Object value) throws NamingException {
+        return internalBind(name, value, false);
+        
+    }
+    protected Map internalBind(String name, Object value, boolean allowRebind) throws NamingException {
+        
+        if (name == null || name.length() == 0){
+            throw new NamingException("Invalid Name " + name);
+        }
+        if (frozen){
+            throw new NamingException("Read only");
+        }
+
+        Map newBindings = new HashMap();
+        int pos = name.indexOf('/');
+        if (pos == -1) {
+            Object oldValue = treeBindings.put(name, value);
+            if (!allowRebind && oldValue != null) {
+                throw new NamingException("Something already bound at " + name);
+            }
+            bindings.put(name, value);
+            newBindings.put(name, value);
+        }
+        else {
+            String segment = name.substring(0, pos);
+          
+            if (segment == null || segment.length()==0){
+                throw new NamingException("Invalid segment " + segment);
+            }
+            Object o = treeBindings.get(segment);
+            if (o == null) {
+                o = newContext();
+                treeBindings.put(segment, o);
+                bindings.put(segment, o);
+                newBindings.put(segment, o);
+            }
+            else if (!(o instanceof DefaultContext)) {
+                throw new NamingException("Something already bound where a subcontext should go");
+            }
+            DefaultContext defaultContext = (DefaultContext) o;
+            String remainder = name.substring(pos + 1);
+            Map subBindings = defaultContext.internalBind(remainder, value, allowRebind);
+            for (Iterator iterator = subBindings.entrySet().iterator(); iterator.hasNext();) {
+                Map.Entry entry = (Map.Entry) iterator.next();
+                String subName = segment + "/" + (String) entry.getKey();
+                Object bound = entry.getValue();
+                treeBindings.put(subName, bound);
+                newBindings.put(subName, bound);
+            }
+        }
+        return newBindings;
+    }
+
+    protected void checkFrozen() throws OperationNotSupportedException {
+        if (isFreeze()) {
+            throw new OperationNotSupportedException("JNDI context is frozen!");
+        }
+    }
+
+    protected DefaultContext newContext() {
+        return new DefaultContext();
+    }
+
+}

Propchange: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/DefaultContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/NameParserImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/SpringInitialContextFactory.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/SpringInitialContextFactory.java?rev=1393346&r1=1393345&r2=1393346&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/SpringInitialContextFactory.java (original)
+++ geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/SpringInitialContextFactory.java Wed Oct  3 08:38:26 2012
@@ -1,106 +1,106 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.xbean.spring.jndi;
-
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.beans.factory.BeanFactory;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.ResourceEditor;
-import org.apache.xbean.spring.context.impl.XBeanXmlBeanFactory;
-
-import javax.naming.Context;
-import javax.naming.NamingException;
-import javax.naming.spi.InitialContextFactory;
-
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-
-/**
- * A simple JNDI initial context which loads the JNDI namespace from a spring.xml configuration file.
- * The spring.xml configuration file can be specified by the {@link Context#PROVIDER_URL} property
- * which can be any spring resource string (classpath://foo.xml, or file://foo/bar.xml or a URL)
- * otherwise the jndi.xml file is found on the classpath.
- *
- * @version $Revision: 657 $
- */
-public class SpringInitialContextFactory implements InitialContextFactory {
-    private static final transient Log log = LogFactory.getLog(SpringInitialContextFactory.class);
-
-    private static Map cache = new HashMap();
-
-    private static Context singleton;
-
-    /**
-     * A factory method which can be used to initialise a singleton JNDI context from inside a Spring.xml
-     * such that future calls to new InitialContext() will reuse it
-     */
-    public static Context makeInitialContext() {
-        singleton = new DefaultContext();
-        return singleton;
-    }
-
-    public Context getInitialContext(Hashtable environment) throws NamingException {
-        if (singleton != null) {
-            return singleton;
-        }
-        Resource resource = null;
-        Object value = environment.get(Context.PROVIDER_URL);
-        String key = "jndi.xml";
-        if (value == null) {
-            resource = new ClassPathResource(key);
-        }
-        else {
-            if (value instanceof Resource) {
-                resource = (Resource) value;
-            }
-            else {
-                ResourceEditor editor = new ResourceEditor();
-                key = value.toString();
-                editor.setAsText(key);
-                resource = (Resource) editor.getValue();
-            }
-        }
-        BeanFactory context = loadContext(resource, key);
-        Context answer = (Context) context.getBean("jndi");
-        if (answer == null) {
-            log.warn("No JNDI context available in JNDI resource: " + resource);
-            answer = new DefaultContext(environment, new ConcurrentHashMap());
-        }
-        return answer;
-    }
-
-    protected BeanFactory loadContext(Resource resource, String key) {
-        synchronized (cache) {
-            BeanFactory answer = (BeanFactory) cache.get(key);
-            if (answer == null) {
-                answer =  createContext(resource);
-                cache.put(key, answer);
-            }
-            return answer;
-        }
-    }
-
-    protected BeanFactory createContext(Resource resource) {
-        log.info("Loading JNDI context from: " + resource);
-        return new XBeanXmlBeanFactory(resource);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.xbean.spring.jndi;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.ResourceEditor;
+import org.apache.xbean.spring.context.impl.XBeanXmlBeanFactory;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.spi.InitialContextFactory;
+
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+
+/**
+ * A simple JNDI initial context which loads the JNDI namespace from a spring.xml configuration file.
+ * The spring.xml configuration file can be specified by the {@link Context#PROVIDER_URL} property
+ * which can be any spring resource string (classpath://foo.xml, or file://foo/bar.xml or a URL)
+ * otherwise the jndi.xml file is found on the classpath.
+ *
+ * @version $Revision: 657 $
+ */
+public class SpringInitialContextFactory implements InitialContextFactory {
+    private static final transient Log log = LogFactory.getLog(SpringInitialContextFactory.class);
+
+    private static Map cache = new HashMap();
+
+    private static Context singleton;
+
+    /**
+     * A factory method which can be used to initialise a singleton JNDI context from inside a Spring.xml
+     * such that future calls to new InitialContext() will reuse it
+     */
+    public static Context makeInitialContext() {
+        singleton = new DefaultContext();
+        return singleton;
+    }
+
+    public Context getInitialContext(Hashtable environment) throws NamingException {
+        if (singleton != null) {
+            return singleton;
+        }
+        Resource resource = null;
+        Object value = environment.get(Context.PROVIDER_URL);
+        String key = "jndi.xml";
+        if (value == null) {
+            resource = new ClassPathResource(key);
+        }
+        else {
+            if (value instanceof Resource) {
+                resource = (Resource) value;
+            }
+            else {
+                ResourceEditor editor = new ResourceEditor();
+                key = value.toString();
+                editor.setAsText(key);
+                resource = (Resource) editor.getValue();
+            }
+        }
+        BeanFactory context = loadContext(resource, key);
+        Context answer = (Context) context.getBean("jndi");
+        if (answer == null) {
+            log.warn("No JNDI context available in JNDI resource: " + resource);
+            answer = new DefaultContext(environment, new ConcurrentHashMap());
+        }
+        return answer;
+    }
+
+    protected BeanFactory loadContext(Resource resource, String key) {
+        synchronized (cache) {
+            BeanFactory answer = (BeanFactory) cache.get(key);
+            if (answer == null) {
+                answer =  createContext(resource);
+                cache.put(key, answer);
+            }
+            return answer;
+        }
+    }
+
+    protected BeanFactory createContext(Resource resource) {
+        log.info("Loading JNDI context from: " + resource);
+        return new XBeanXmlBeanFactory(resource);
+    }
+}

Propchange: geronimo/xbean/trunk/xbean-spring/src/main/java/org/apache/xbean/spring/jndi/SpringInitialContextFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message