You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by pm...@apache.org on 2007/06/28 16:14:56 UTC
svn commit: r551566 [7/7] - in /geronimo/sandbox/j2g: configurator/ plugins/
plugins/org.apache.geronimo.j2g.common/
plugins/org.apache.geronimo.j2g.descriptors.app/
plugins/org.apache.geronimo.j2g.descriptors.app/META-INF/
plugins/org.apache.geronimo....
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/AbsoluteNameSolver.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/AbsoluteNameSolver.java?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/AbsoluteNameSolver.java (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/AbsoluteNameSolver.java Thu Jun 28 07:14:50 2007
@@ -1,469 +0,0 @@
-/**
- * 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.geronimo.j2g.sources.environment;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.geronimo.j2g.common.IOutput;
-import org.apache.geronimo.j2g.common.Tool;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.Element;
-import org.dom4j.Node;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.SAXReader;
-import org.dom4j.io.XMLWriter;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.Type;
-
-
-/**
- * Provides a mechanism to solve absolute JNDI name used in javax.naming.lookup
- * method.
- */
-public class AbsoluteNameSolver {
- /** Static couner for generating valid ejb names. */
- private static int counter = 0;
-
- /** Property file with EJB interfaces */
- public final static String INTEFACES_PROP = "../properties/org.apache.geronimo.j2g.sources.environment/beans-interfaces.properties";
-
- /** Property file with paths for searching types in jboss.xml */
- public final static String BEANS_TYPES_PROP = "../properties/org.apache.geronimo.j2g.sources.environment/beans-types.properties";
-
- /**
- * Property file with paths for searching home and remote interfaces in
- * ejb-jar.xml
- */
- public final static String BEANS_REFS_PROP = "../properties/org.apache.geronimo.j2g.sources.environment/beans-references.properties";
-
- /** References in ejb-jar.xml to be found */
- private final static String[] EJB_REFS = { "ejb-ref", "ejb-local-ref",
- "resource-ref", "resource-env-ref" };
-
- /** Separator string for XPath */
- private final static String XPATH_SEPARATOR = "/";
-
- /** Separator string for XPath for access elements by non-full names. */
- private final static String DOUBLE_XPATH_SEPARATOR = "//";
-
- /** Ejb classname element int ejb-jar.xml */
- private final static String EJB_CLASS_ELM = "ejb-class";
-
- /** Ejb name element. */
- private final static String EJB_NAME_ELM = "ejb-name";
-
- /** Ejb reference element for add references to ejb-jar.xml */
- private final static String EJB_REF_ELM = "ejb-ref";
-
- /** Ejb reference element for add references to ejb-jar.xml */
- private final static String EJB_LOCAL_REF_ELM = "ejb-local-ref";
-
- /** Ejb reference JNDI name element. */
- private final static String EJB_REF_NAME_ELM = "ejb-ref-name";
-
- /** Ejb reference type element. (Session | Entity) */
- private final static String EJB_REF_TYPE_ELM = "ejb-ref-type";
-
- /** Ejb link element. */
- private final static String EJB_LINK_ELM = "ejb-link";
-
- /** Base name for generating full ejb reference name. */
- private final static String BASE_JNDI_NAME = "ejb/";
-
- /** Session reference type */
- private final static String SESSION_TYPE = "Session";
-
- /** Entity reference type */
- private final static String ENTITY_TYPE = "Entity";
-
- /** Property file with EJB interfaces */
- public static Properties interfaces;
-
- /** Property file with paths for searching types in jboss.xml */
- private static Properties beansTypes;
-
- /**
- * Property file with paths for searching home and remote interfaces in
- * ejb-jar.xml
- */
- private static Properties beansRefs;
-
- /** Home interface suffix */
- private final static String HOME_INTERFACE_SUFFIX = "-home";
-
- /** XPath to session elements. */
- private final static String SESSION_XPATH = "/ejb-jar/enterprise-beans/session/";
-
- /** XPath to entity elements */
- private final static String ENTITY_XPATH = "/ejb-jar/enterprise-beans/entity/";
-
- /** Full qualified classname for current class */
- private String qualifiedClassName;
-
- /** Superinterfaces for current class. */
- private List superInterfaces;
-
- /** Output */
- private IOutput out;
-
- /** Current compilation unit */
- private CompilationUnit unit;
-
- /** SAX reader */
- private SAXReader xmlReader;
-
- /** XPath path for class */
- private String pathForClass;
-
- /**
- * Constructor.
- *
- * @param qualifiedClassName
- * full qualified class name which defined in compilation unit.
- * @param unit
- * compilation unit.
- * @param superIterfaces
- * super interfaces implemented by class which defined in
- * compilation unit.
- * @throws NameSolvingException
- */
- public AbsoluteNameSolver(String qualifiedClassName, List superIterfaces,
- CompilationUnit unit) throws NameSolvingException {
- this.out = Tool.getCurrent().getOutput();
- this.qualifiedClassName = qualifiedClassName;
- this.superInterfaces = superIterfaces;
- this.unit = unit;
- pathForClass = getPathForClass();
- xmlReader = new SAXReader(true);
- }
-
- /**
- * Tries to find already existing references to current class. If none
- * found, tries to resolve type of the current ejb and to add ejb reference
- * for current absolute name.
- *
- * @param absoluteName
- * absolute name which should be solved.
- * @param position
- * position in compilation unit.
- * @param ejbJar
- * existed ejb-jar.xml descriptor. (META-INF/ejb-jar.xml)
- * @param jbossXml
- * existed jboss.xml descriptor. (META-INf/jboss.xml)
- * @return JNDI name in local context which was referenced in ejb-jar
- * descriptor.
- * @throws NameSolvingException
- * if any errors occurs while solving absolute names.
- */
- public String solveName(String absoluteName, int position, File ejbJar,
- File jbossXml) throws NameSolvingException {
- loadProperties();
- if (pathForClass != null) {
- Document ejbJarDoc = null;
- try {
- ejbJarDoc = xmlReader.read(ejbJar);
- } catch (DocumentException ex) {
- throw new NameSolvingException(
- "Errors occurs while reading xml descriptor "
- + jbossXml.getAbsolutePath()
- + ". It is possible that the migrator cannot download an xml schema or xml file has a wrong syntax. Nested exception:"
- + ex.getMessage());
- }
-
- List nodes = ejbJarDoc.selectNodes(pathForClass + XPATH_SEPARATOR
- + EJB_CLASS_ELM);
- Iterator nodesIter = nodes.iterator();
- Node ejbJarNode = null;
- while (nodesIter.hasNext()) {
- Node node = (Node) nodesIter.next();
- if (qualifiedClassName.equals(node.getStringValue().trim())) {
- ejbJarNode = node.getParent();
- for (int i = 0; i < EJB_REFS.length; i++) {
- List refsNodes = ejbJarNode
- .selectNodes(DOUBLE_XPATH_SEPARATOR
- + EJB_REFS[i]);
- if (!refsNodes.isEmpty()) {
- Iterator references = refsNodes.iterator();
-
- while (references.hasNext()) {
- Node referenceNode = (Node) references.next();
- String refName = getNodeValueByName(
- referenceNode, EJB_REF_NAME_ELM);
- if (refName != null
- && absoluteName.equals(refName.trim())) {
- out
- .warn(
- "Cannot add reference to the abolute name '"
- + absoluteName
- + "' because the reference in ejb-jar.xml descriptor to current class already defined.",
- unit
- .getLineNumber(position),
- unit
- .getColumnNumber(position));
- return null;
- }
- }
- }
- }
- break;
- }
- }
- if (ejbJarNode != null) {
- Document jbossXmlDoc = null;
- try {
- jbossXmlDoc = xmlReader.read(jbossXml);
- } catch (DocumentException ex) {
- throw new NameSolvingException(
- "Errors occurs while reading xml descriptor "
- + jbossXml.getAbsolutePath()
- + ". It is possible that the migrator cannot download an xml schema or xml file has a wrong syntax. Nested exception:"
- + ex.getMessage());
- }
- Enumeration paths = beansTypes.keys();
- while (paths.hasMoreElements()) {
- String path = (String) paths.nextElement();
- List findedNodes = jbossXmlDoc.selectNodes(path);
- Iterator findedNodesIter = findedNodes.iterator();
- while (findedNodesIter.hasNext()) {
- Node jbossXmlNode = (Node) findedNodesIter.next();
- if (absoluteName.equals(jbossXmlNode.getStringValue()
- .trim())) {
- String type = beansTypes.getProperty(path);
- String ejbName = getNodeValueByName(
- jbossXmlNode.getParent(), EJB_NAME_ELM)
- .trim();
- Node referenceNode = null;
- String ejbRefType = null;
- List sessionNodes = ejbJarDoc
- .selectNodes(SESSION_XPATH + EJB_NAME_ELM);
- Iterator sessionNodesIter = sessionNodes.iterator();
- while (sessionNodesIter.hasNext()) {
- Node ejbNameNode = (Node) sessionNodesIter
- .next();
- if (ejbName
- .equals(ejbNameNode.getStringValue())) {
- referenceNode = ejbNameNode.getParent();
- ejbRefType = SESSION_TYPE;
- break;
- }
- }
- if (ejbRefType == null) {
- List entityNodes = ejbJarDoc
- .selectNodes(ENTITY_XPATH
- + EJB_NAME_ELM);
- Iterator entityNodesIter = entityNodes
- .iterator();
- while (entityNodesIter.hasNext()) {
- Node ejbNameNode = (Node) entityNodesIter
- .next();
- if (ejbName.equals(ejbNameNode
- .getStringValue())) {
- referenceNode = ejbNameNode.getParent();
- ejbRefType = ENTITY_TYPE;
- break;
- }
- }
- }
- if (referenceNode != null) {
- String homeIterfacePath = beansRefs
- .getProperty(type
- + HOME_INTERFACE_SUFFIX);
- String homeIterface = getNodeValueByName(
- referenceNode, homeIterfacePath);
- String objectIterfacePath = beansRefs
- .getProperty(type);
- String objectIterface = getNodeValueByName(
- referenceNode, objectIterfacePath);
- Element ejbJarElement = (Element) ejbJarNode;
- Element ejbRef = null;
- if (objectIterfacePath.equals("remote")) {
- ejbRef = ejbJarElement
- .addElement(EJB_REF_ELM);
- } else {
- ejbRef = ejbJarElement
- .addElement(EJB_LOCAL_REF_ELM);
- }
-
- String refName = generateNewRefName();
- ejbRef.addElement(EJB_REF_NAME_ELM).addText(
- refName);
- ejbRef.addElement(EJB_REF_TYPE_ELM).addText(
- ejbRefType);
- ejbRef.addElement(homeIterfacePath).addText(
- homeIterface);
- ejbRef.addElement(objectIterfacePath).addText(
- objectIterface);
- ejbRef.addElement(EJB_LINK_ELM)
- .addText(ejbName);
- serializetoXML(ejbJar, ejbJarDoc);
- return refName;
- } else {
- out
- .error("Cannot find EJB definition in ejb-jar.xml for create reference to it.");
- }
- }
- }
- }
- }
- }
- return null;
- }
-
- /**
- * Generates new names for ejb references. It looks like
- * 'ejb/SimpleClassName_x'
- *
- * @return new generated reference name.
- */
- private String generateNewRefName() {
- String simpleClassName = qualifiedClassName
- .substring(qualifiedClassName.lastIndexOf(".") + 1);
- return BASE_JNDI_NAME + simpleClassName + "_" + (counter++);
- }
-
- /**
- * Saves document to file.
- *
- * @param xmlFile
- * destination file.
- * @param doc
- * xml document.
- * @throws NameSolvingException
- * if cannot save document.
- */
- private void serializetoXML(File xmlFile, Document doc)
- throws NameSolvingException {
- try {
- OutputStream output = new FileOutputStream(xmlFile);
- OutputFormat outformat = OutputFormat.createPrettyPrint();
- XMLWriter writer = new XMLWriter(output, outformat);
- writer.write(doc);
- writer.flush();
- } catch (Exception ex) {
- throw new NameSolvingException(
- "Error occurs while xml descriptors saving.", ex);
- }
- }
-
- /**
- * Gets string value of element in node by it name.
- *
- * @param parent
- * parent node.
- * @param name
- * element name.
- * @return string value of element in node.
- */
- private String getNodeValueByName(Node parent, String name) {
- Node node = parent.selectSingleNode(name);
- if (node != null) {
- return node.getStringValue();
- }
- return null;
- }
-
- /**
- * Gets XPath where need to search already defined references for current
- * class defined in current compilation unit and determines type of
- * reference required for current class.
- *
- * @return XPath in ejb-jar.xml descriptor.
- * @throws NameSolvingException
- * if cannot load properties files.
- */
- private String getPathForClass() throws NameSolvingException {
- loadProperties();
- Enumeration enumeration = interfaces.keys();
- while (enumeration.hasMoreElements()) {
- String ejbInterface = (String) enumeration.nextElement();
- Iterator types = superInterfaces.iterator();
- while (types.hasNext()) {
- Type superType = (Type) types.next();
- ITypeBinding bind = superType.resolveBinding();
- if (bind != null
- && bind.getQualifiedName().equals(ejbInterface)) {
- String path = interfaces.getProperty(ejbInterface);
- return path;
- }
- }
- }
- return null;
- }
-
- /**
- * @return true if class is an EJB bean.
- */
- public boolean isEjbBeanClass() {
- return (pathForClass != null);
- }
-
- /**
- * Loads all necessary properties files.
- *
- * @throws NameSolvingException
- * if cannot load one or more properts files.
- */
- private void loadProperties() throws NameSolvingException {
- if (interfaces == null) {
- interfaces = new Properties();
- try {
- File temp = new File(INTEFACES_PROP);
- System.out.println("I think I'm here " + temp.getAbsolutePath());
- File propertyFile = new File(INTEFACES_PROP);
- interfaces.load(new FileInputStream(propertyFile));
- } catch (IOException ex) {
- throw new NameSolvingException(
- "Cannot read system property file: " + INTEFACES_PROP,
- ex);
- }
- }
-
- if (beansTypes == null) {
- beansTypes = new Properties();
- try {
- File propertyFile = new File(BEANS_TYPES_PROP);
- beansTypes.load(new FileInputStream(propertyFile));
- } catch (IOException ex) {
- throw new NameSolvingException(
- "Cannot read system property file: " + BEANS_TYPES_PROP,
- ex);
- }
- }
-
- if (beansRefs == null) {
- beansRefs = new Properties();
- try {
- File propertyFile = new File(BEANS_REFS_PROP);
- beansRefs.load(new FileInputStream(propertyFile));
- } catch (IOException ex) {
- throw new NameSolvingException(
- "Cannot read system property file: " + BEANS_REFS_PROP,
- ex);
- }
- }
- }
-}
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/BlockVisitor.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/BlockVisitor.java?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/BlockVisitor.java (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/BlockVisitor.java Thu Jun 28 07:14:50 2007
@@ -1,464 +0,0 @@
-/**
- * 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.geronimo.j2g.sources.environment;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.geronimo.j2g.common.FatalToolException;
-import org.apache.geronimo.j2g.common.IOutput;
-import org.apache.geronimo.j2g.common.Tool;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.ASTVisitor;
-import org.eclipse.jdt.core.dom.Assignment;
-import org.eclipse.jdt.core.dom.CastExpression;
-import org.eclipse.jdt.core.dom.ClassInstanceCreation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.Expression;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.MethodInvocation;
-import org.eclipse.jdt.core.dom.SimpleName;
-import org.eclipse.jdt.core.dom.StringLiteral;
-import org.eclipse.jdt.core.dom.Type;
-import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
-
-
-/**
- * The algorithm of work as follows: <br>
- * 1. Searches invocations of the <code>javax.naming.Context#lookup</code> method; <br>
- *
- * 2. If the lookup meets the following conditions: <br>
- * a) It is performed from an EJB;<br>
- * b) JNDI name is a string constant;<br>
- * c) JNDI name is a path in the EJB environment (starts with "java:comp/env" or equals to
- * "java:comp/UserTransaction", "java:comp/ORB" );<br>
- * then the plug-in considers this lookup as correct. <br>
- *
- * 3. If the lookup meets the following conditions: <br>
- * a) It is performed from an EJB;<br>
- * b) JNDI name is a string constant;<br>
- * c) JNDI name is a full direct path;<br>
- * d) EJB does not have any environment references; <br>
- * then the plug-in should add the resource reference in the EJB component's deployment descriptor
- * and replace the use of a direct name with this name from the component's environment.<br>
- *
- * 4. Otherwise the plug-in outputs a warning message that the lookup might be incorrect.
- */
-public class BlockVisitor extends ASTVisitor {
-
- /** Lookup method simple name. */
- private final static String LOOKUP_METHOD_NAME = "lookup";
-
- /** Full qualified name for Context interface. */
- private final static String CONTEXT_INTERFACE_NAME = "javax.naming.Context";
-
- /** Full qualified name for InitialContext class. */
- private final static String INIT_CONTEXT_CLASSNAME = "javax.naming.InitialContext";
-
- /** Initial context. */
- private final static String INITIAL_CONTEXT = "";
-
- /** Compilation unit. */
- private CompilationUnit unit;
-
- /** Tool output. */
- private IOutput out;
-
- /** HashMap for the context variables. */
- private HashMap varsMap;
-
- /** Solver for absolute JNDI names used in lookup methods. */
- private AbsoluteNameSolver solver;
-
- /** Allowed objects for JNDI lookup. */
- private final static String[] ALLOWED_OBJECTS = { "java:comp/UserTransaction", "java:comp/ORB" };
-
- /** Local context. */
- private final static String LOCAL_CONTEXT = "java:comp/env/";
-
- /** Meta-inf directory default name. */
- public final static String META_INF_DIR = "META-INF";
-
- /** EJB deployment descriptor default filename. */
- public final static String EJB_JAR_FILE = "ejb-jar.xml";
-
- /** JBoss descriptor default filename. */
- public final static String JBOSS_XML_FILE = "jboss.xml";
-
- /** Last catched string literal for lookup method. */
- private StringLiteral lastStrLiteral;
-
- /**
- * Visitor constructor. Setups compilation unit and output.
- * @param unit current compilation unit.
- * @param solver initialized absolute names solver for visiting class.
- */
- public BlockVisitor(CompilationUnit unit, AbsoluteNameSolver solver) {
- super(false);
- this.unit = unit;
- this.solver = solver;
- varsMap = new HashMap();
- out = Tool.getCurrent().getOutput();
- }
-
- /**
- * Checks method and if it is a javax.naming.Context#lookup resolves and analizes context.
- * @param methodInvocation method invocation.
- */
- public boolean visit(MethodInvocation methodInvocation) {
- int position = methodInvocation.getStartPosition();
- if (isLookupMethodInvocation(methodInvocation)) {
- String jndiName = getLookupArgument(methodInvocation);
- try {
- analizeLookupJNDIName(jndiName, position);
- } catch (FatalToolException ex) {
- out.error("Cannot check correctness of lookup method using: " + ex.getMessage(), unit.getLineNumber(position), unit.getColumnNumber(position));
- }
- }
- return true;
- }
-
- /**
- * If it's an assign for a variable which type is javax.naming.Context then analizes correctness
- * of initializer and puts variable assignment to the varsMap.
- * @param assignment assignment.
- */
- public boolean visit(Assignment assignment) {
- Expression leftSide = assignment.getLeftHandSide();
- if (leftSide instanceof SimpleName) {
- SimpleName varName = (SimpleName) leftSide;
- if (isValidType(varName)) {
- Expression rightSide = assignment.getRightHandSide();
- ASTNode parent = getParentBlock(assignment);
- int exprEnd = parent.getStartPosition() + parent.getLength();
- if (isValidContextInitializer(rightSide)) {
- String key = varName.getIdentifier();
- VarContext var = new VarContext(INITIAL_CONTEXT, exprEnd, true);
- varsMap.put(key, var);
- return false;
- }
- else {
- String cast = checkCastToContext(rightSide);
- if (cast != null) {
- String key = varName.getIdentifier();
- VarContext var = new VarContext(cast, exprEnd, true);
- varsMap.put(key, var);
- return false;
- }
- else {
- String key = varName.getIdentifier();
- VarContext var = new VarContext(INITIAL_CONTEXT, exprEnd, false);
- varsMap.put(key, var);
- return true;
- }
- }
- }
- }
- return true;
- }
-
- /**
- * If it's the declaration of the variable which type is javax.naming.Context and initializer
- * not null then analizes it correctness and puts variable assignment to the varsMap.
- * @param fragment variable declaration fragment.
- */
- public boolean visit(VariableDeclarationFragment fragment) {
- Expression initializer = fragment.getInitializer();
- if (initializer != null) {
- SimpleName varName = fragment.getName();
- if (isValidType(varName)) {
- ASTNode parent = getParentBlock(fragment);
- int exprEnd = parent.getStartPosition() + parent.getLength();
- if (isValidContextInitializer(initializer)) {
- String key = varName.getIdentifier();
- VarContext var = new VarContext(INITIAL_CONTEXT, exprEnd, true);
- varsMap.put(key, var);
- return false;
- }
- else {
- String cast = checkCastToContext(fragment.getInitializer());
- if (cast != null) {
- String key = varName.getIdentifier();
- VarContext var = new VarContext(cast, exprEnd, true);
- varsMap.put(key, var);
- return false;
- }
- else {
- String key = varName.getIdentifier();
- VarContext var = new VarContext(INITIAL_CONTEXT, exprEnd, false);
- varsMap.put(key, var);
- return true;
- }
- }
- }
- else {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Checks that expression is a creation of <code>InitailContext</code> class instance without
- * parameters.
- * @param expr initializer expression.
- * @return true if expr looks like this <code>new InitialContext()</code>.
- */
- private boolean isValidContextInitializer(Expression expr) {
- if (expr instanceof ClassInstanceCreation) {
- ClassInstanceCreation instanceCreation = (ClassInstanceCreation) expr;
- Type type = instanceCreation.getType();
- ITypeBinding typeBind = type.resolveBinding();
- if (typeBind.getQualifiedName().equals(INIT_CONTEXT_CLASSNAME)) {
- if (instanceCreation.arguments().isEmpty()) {
- return true;
- }
- }
- }
- return false;
- }
-
- /**
- * Checks that expression has <code>javax.naming.Context</code> type or its type implements
- * that interface.
- *
- * @param expr expression which will be checked.
- * @return true if expression has <code>javax.naming.Context</code> type or its type
- * implements that interface.
- */
- private boolean isValidType(Expression expr) {
- ITypeBinding bind = expr.resolveTypeBinding();
- if (bind != null) {
- if (bind.getQualifiedName().equals(CONTEXT_INTERFACE_NAME)) {
- return true;
- }
- else {
- ITypeBinding[] interfaces = bind.getInterfaces();
- for (int i = 0; i < interfaces.length; i++) {
- if (interfaces[i].getQualifiedName().equals(CONTEXT_INTERFACE_NAME)) {
- return true;
- }
- }
- }
- }
- return false;
- }
-
- /**
- * Checks that expression is cast object returned by <code>javax.naming.Context#lookup</code>
- * method to the <code>javax.naming.Context</code> type.
- *
- * @param expr expression which will be checked.
- * @return JNDI name for Context presented by cast or <code>null</code> if it cannot be
- * unambiguously resolved or if expression is invalid.
- */
- private String checkCastToContext(Expression expr) {
- if (expr != null && isValidType(expr)) {
- if (expr instanceof CastExpression) {
- CastExpression castExpr = (CastExpression) expr;
- Expression castArg = castExpr.getExpression();
- if (castArg instanceof MethodInvocation) {
- MethodInvocation invocation = (MethodInvocation) castArg;
- if (isLookupMethodInvocation(invocation)) {
- String name = getLookupArgument(invocation);
- return name;
- }
- else {
- return null;
- }
-
- }
- }
- }
- return null;
- }
-
- /**
- * Checks a javax.naming.Context#lookup method invocation and tries to resolve context.
- * @param invocation lookup method invocation node.
- * @return JNDI name for object returned by lookup method or <code>null</code> if it cannot be
- * unambiguously resolved or it is not lookup method.
- */
- private String getLookupArgument(MethodInvocation invocation) {
- Expression expr = invocation.getExpression();
- String history = getExpressionHistory(expr);
- if (history != null) {
- List arguments = invocation.arguments();
- if (arguments.size() != 0) {
- Expression arg = (Expression) arguments.get(0);
- if (arg instanceof StringLiteral) {
- StringLiteral literal = (StringLiteral) arg;
- String resultContext = history + literal.getLiteralValue();
- this.lastStrLiteral = literal;
- return resultContext;
- }
- }
- }
- return null;
- }
-
- /**
- * Checks is it lookup method or not.
- * @param invocation method invocation node.
- * @return <code>true</code> if it is a javax.naming.Context#lookup and <code>false</code>
- * in another cases.
- */
- private boolean isLookupMethodInvocation(MethodInvocation invocation) {
- if (invocation.getName().getIdentifier().equals(LOOKUP_METHOD_NAME)) {
- Expression expr = invocation.getExpression();
- if (isValidType(expr)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * If expr is a variable then gets variable context from varsMap and returns its value if it's
- * correct.
- * @param expr which type is a <code>javax.naming.Context</code>.
- * @return JNDI name presented by this expression or <code>null</code> if it cannot be
- * unambiguously resolved
- */
- private String getExpressionHistory(Expression expr) {
- if (expr instanceof SimpleName) {
- SimpleName name = (SimpleName) expr;
- String varName = name.getIdentifier();
- VarContext var = (VarContext) varsMap.get(varName);
- if (var != null && var.isValid() && var.getAreaEnd() > name.getStartPosition()) {
- return var.getJNDIName();
- }
- }
- return null;
- }
-
- /**
- * Gets parent node for a variable declaration fragment.
- * @param fragment
- * @return parent block for the specified <code>VariableDeclarationFragment</code>.
- */
- private ASTNode getParentBlock(VariableDeclarationFragment fragment) {
- return fragment.getParent().getParent().getParent();
- }
-
- /**
- * Gets parent node for an assignment.
- * @param assignment
- * @return parent block for the specified <code>Assignment</code>.
- */
- private ASTNode getParentBlock(Assignment assignment) {
- return assignment.getParent().getParent();
- }
-
- /**
- * Checks the correctness of the JNDI name.
- * @param name JNDI name.
- * @param position position in the source file.
- * @throws FatalToolException if any exceptions occurs while checks JNDI name.
- */
- private void analizeLookupJNDIName(String name, int position) throws FatalToolException {
- if (name != null) {
- if (!isValidJNDIName(name)) {
- String literalValue = lastStrLiteral.getLiteralValue();
- if (literalValue.equals(name)) {
- String solvedName = solveAbsoluteName(name, position);
- if (solvedName != null) {
- String localJNDIName = LOCAL_CONTEXT + solvedName;
- out.info("The reference to current EJB was added to " + EJB_JAR_FILE + " deployment descriptor. Using of direct name '" + name + "' was replaced by '" + localJNDIName + "' local name.", unit.getLineNumber(position), unit.getColumnNumber(position));
- lastStrLiteral.setLiteralValue(localJNDIName);
- return;
- }
- else {
- out.warn("Using of an absolute JNDI name might be incorrect.", unit.getLineNumber(position), unit.getColumnNumber(position));
- return;
- }
- }
- } else{
- return;
- }
-
- }
- out.warn("Lookup using might be incorrect.", unit.getLineNumber(position), unit.getColumnNumber(position));
- }
-
- /**
- * Tries to find META-INF/ejb-jar.xml and META-INF/jboss.xml descriptors and if its exests tries
- * to add references for JNDI name to its.
- * @param absoluteName absolute JNDI name.
- * @param position position in the source file.
- * @return JNDI name in local context or null if cannot unambiguously solve references.
- * @throws FatalToolException if any errors occurs while solving name.
- */
- private String solveAbsoluteName(String absoluteName, int position) throws FatalToolException {
- if (solver.isEjbBeanClass()) {
- try {
- String pack = unit.getPackage().getName().getFullyQualifiedName().replace('.', File.separatorChar);
- String unitFile = unit.getJavaElement().getUnderlyingResource().getRawLocation().toFile().getAbsolutePath();
- String rootDir = unitFile.substring(0, unitFile.lastIndexOf(pack));
- File metaInfDir = new File(rootDir + META_INF_DIR);
- if (metaInfDir.exists() && metaInfDir.isDirectory()) {
- File ejbJar = new File(metaInfDir, EJB_JAR_FILE);
- File jbossXml = new File(metaInfDir, JBOSS_XML_FILE);
- if (ejbJar.exists()) {
- if (jbossXml.exists()) {
- String solvedName = solver.solveName(absoluteName, position, ejbJar, jbossXml);
- return solvedName;
- }
- else {
- out.error("Cannot add reference for absolute name '" + absoluteName + "' : cannot find " + jbossXml.getAbsolutePath() + " file.", unit.getLineNumber(position), unit.getColumnNumber(position));
- }
- }
- else {
- out.error("Cannot add reference for absolute name '" + absoluteName + "' : cannot find " + ejbJar.getAbsolutePath() + " file.", unit.getLineNumber(position), unit.getColumnNumber(position));
- }
-
- }
- else {
- out.error("Cannot add reference for absolute name '" + absoluteName + "' : cannot find " + metaInfDir.getAbsolutePath() + " directory.", unit.getLineNumber(position), unit.getColumnNumber(position));
- return null;
- }
-
- } catch (JavaModelException ex) {
- throw new FatalToolException("Cannot access to source file.", ex);
- } catch (NameSolvingException ex) {
- out.error("Cannot add reference for absolute name '" + absoluteName + "' :" + ex.getMessage());
- }
- }
- return null;
- }
-
- /**
- * Checks correctness of constant JNDI name.
- * @param name JNDI name.
- * @return true if it's correct JNDI name (Starts with 'java:comp/env/' or equals to allowed
- * strings).
- */
- private boolean isValidJNDIName(String name) {
- if (name.startsWith(LOCAL_CONTEXT)) {
- return true;
- }
- for (int i = 0; i < ALLOWED_OBJECTS.length; i++) {
- if (ALLOWED_OBJECTS[i].equals(name)) {
- return true;
- }
- }
- return false;
- }
-}
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/EjbEnvJavaMigration.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/EjbEnvJavaMigration.java?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/EjbEnvJavaMigration.java (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/EjbEnvJavaMigration.java Thu Jun 28 07:14:50 2007
@@ -1,66 +0,0 @@
-/**
- * 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.geronimo.j2g.sources.environment;
-
-import org.apache.geronimo.j2g.common.IJavaMigration;
-import org.apache.geronimo.j2g.common.IOutput;
-import org.apache.geronimo.j2g.common.Tool;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-
-
-/**
- * @see IJavaMigration
- */
-public class EjbEnvJavaMigration implements IJavaMigration {
- /**
- * Plug-in name.
- */
- private final static String PLUGIN_NAME = "EJB environment plug-in";
-
- /**
- * Tool output.
- */
- private IOutput out;
-
- /**
- * Finds access of a component to the named object in the source code outside of its own
- * environment and tries to ascertain is it correct or not.
- * @param source compilation unit for migration.
- * @throws JavaModelException
- */
- public boolean migrate(ASTNode source) {
- out = Tool.getCurrent().getOutput();
- if (source instanceof CompilationUnit) {
- CompilationUnit unit = (CompilationUnit) source;
- out.info("[" + PLUGIN_NAME + "] " + "Migration started: " + unit.getJavaElement().getElementName());
- long initialChanges = unit.getAST().modificationCount();
- MethodsVisitor methodsVisitor = new MethodsVisitor(unit);
- unit.accept(methodsVisitor);
- //methodsVisitor.visit(unit);
- long finalChanges = unit.getAST().modificationCount();
- out.info("[" + PLUGIN_NAME + "] " + "Migration finished: " + unit.getJavaElement().getElementName());
- return initialChanges != finalChanges;
- }
- else {
- out.error("[" + PLUGIN_NAME + "] " + "Wrong type of source node.");
- }
- return false;
- }
-}
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/MethodsVisitor.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/MethodsVisitor.java?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/MethodsVisitor.java (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/MethodsVisitor.java Thu Jun 28 07:14:50 2007
@@ -1,83 +0,0 @@
-/**
- * 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.geronimo.j2g.sources.environment;
-
-import java.util.List;
-
-import org.apache.geronimo.j2g.common.Tool;
-import org.eclipse.jdt.core.dom.ASTVisitor;
-import org.eclipse.jdt.core.dom.Block;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.MethodDeclaration;
-import org.eclipse.jdt.core.dom.SimpleName;
-import org.eclipse.jdt.core.dom.TypeDeclaration;
-
-
-/**
- * Visits types declarations, creates absolute name solvers and then visits methods declarations of
- * these types. For each method declaration creates and starts {@link BlockVisitor}.
- */
-public class MethodsVisitor extends ASTVisitor {
- /** Compilation unit. */
- private CompilationUnit unit;
-
- /** Solver for absolute JNDI names. */
- private AbsoluteNameSolver solver;
-
- /**
- * Constructor.
- * @param unit compilation unit.
- */
- public MethodsVisitor(CompilationUnit unit) {
- super(false);
- this.unit = unit;
- }
-
- /**
- * Creates absolute names solver for this type declaration.
- * @param declaration type declaration.
- */
- public boolean visit(TypeDeclaration declaration) {
- List superInterfaces = declaration.superInterfaceTypes();
- SimpleName className = declaration.getName();
- ITypeBinding bind = className.resolveTypeBinding();
- String qualifiedName = bind.getQualifiedName();
- try {
- solver = new AbsoluteNameSolver(qualifiedName, superInterfaces, unit);
- return true;
- } catch (NameSolvingException e) {
- Tool.getCurrent().getOutput().fatal("Internal error occurs. " + e.getMessage());
- }
- return false;
- }
-
- /**
- * Creates and starts {@link BlockVisitor} if method is not empty.
- * @param methodDeclaration method declaration.
- */
- public boolean visit(MethodDeclaration methodDeclaration) {
- Block block = methodDeclaration.getBody();
- if (block != null) {
- BlockVisitor blockVisitor = new BlockVisitor(unit, solver);
- methodDeclaration.accept(blockVisitor);
- //blockVisitor.visit(block);
- }
- return false;
- }
-}
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/NameSolvingException.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/NameSolvingException.java?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/NameSolvingException.java (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/NameSolvingException.java Thu Jun 28 07:14:50 2007
@@ -1,60 +0,0 @@
-/**
- * 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.geronimo.j2g.sources.environment;
-
-/**
- * Exception that indicates exceptions occurs while AbsoluteNameSolver works.
- */
-public class NameSolvingException extends Exception {
-
- /** Serial version UID */
- private static final long serialVersionUID = 1419666308972177554L;
-
- /**
- * Constructor.
- */
- public NameSolvingException() {
- super();
- }
-
- /**
- * Constructor.
- * @param msg message.
- */
- public NameSolvingException(String msg) {
- super(msg);
- }
-
- /**
- * Constructor.
- * @param cause cause.
- */
- public NameSolvingException(Throwable cause) {
- super(cause);
- }
-
- /**
- * Constructor.
- * @param msg message.
- * @param cause cause.
- */
- public NameSolvingException(String msg, Throwable cause) {
- super(msg, cause);
- }
-
-}
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/VarContext.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/VarContext.java?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/VarContext.java (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources.environment/src/org/apache/geronimo/j2g/sources/environment/VarContext.java Thu Jun 28 07:14:50 2007
@@ -1,72 +0,0 @@
-/**
- * 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.geronimo.j2g.sources.environment;
-
-/**
- * Class represents JNDI name, scope and correctness presented by <code>javax.naming.Context</code> variable.
- */
-public class VarContext
-{
- /**
- * Correctness flag.
- */
- private boolean valid;
-
- /**
- * Position ends of scope in a compilation unit there variable was declared.
- */
- private int areaEnd;
-
- /**
- * JNDI name which variable presents.
- */
- private String jndiName;
-
- /**
- * Constructor.
- */
- public VarContext(String jndiName, int end, boolean valid)
- {
- this.areaEnd = end;
- this.valid = valid;
- this.jndiName = jndiName;
- }
-
- /**
- * @return end of variable scope in a current compilation unit.
- */
- public int getAreaEnd()
- {
- return areaEnd;
- }
-
- /**
- * @return <code>true</code> if variable is correct.
- */
- public boolean isValid()
- {
- return valid;
- }
-
- /**
- * @return JNDI name which presented by variable.
- */
- public String getJNDIName()
- {
- return jndiName;
- }
-}
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/.classpath
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/.classpath?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/.classpath (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/.classpath Thu Jun 28 07:14:50 2007
@@ -1,7 +1,22 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+<classpath>
+ <classpathentry kind="src" path="." including="plugin.xml" excluding="**/*.java"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/tomcat/jasper-compiler/5.5.15/jasper-compiler-5.5.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar"/>
+ <classpathentry kind="src" path="/org.apache.geronimo.j2g.jasper"/>
+ <classpathentry kind="var" path="M2_REPO/commons-el/commons-el/1.0/commons-el-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jsp_2.0_spec/1.1/geronimo-jsp_2.0_spec-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.1.1/core-3.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-servlet_2.4_spec/1.1.1/geronimo-servlet_2.4_spec-1.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
+ <classpathentry kind="src" path="/org.apache.geronimo.j2g.common"/>
+ <classpathentry kind="var" path="M2_REPO/tomcat/jasper-runtime/5.5.15/jasper-runtime-5.5.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/ant/ant/1.6.5/ant-1.6.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/servlet/jsp-api/2.0/jsp-api-2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/tomcat/jasper-compiler-jdt/5.5.15/jasper-compiler-jdt-5.5.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/>
+</classpath>
\ No newline at end of file
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/.project
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/.project?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/.project (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/.project Thu Jun 28 07:14:50 2007
@@ -1,28 +1,23 @@
-<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.apache.geronimo.j2g.sources</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+ <name>org.apache.geronimo.j2g.sources</name>
+ <comment>JBoss to Geronimo Conversion Tool</comment>
+ <projects>
+ <project>org.apache.geronimo.j2g.jasper</project>
+ <project>org.apache.geronimo.j2g.common</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/META-INF/MANIFEST.MF?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/META-INF/MANIFEST.MF (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/META-INF/MANIFEST.MF Thu Jun 28 07:14:50 2007
@@ -5,11 +5,19 @@
Bundle-Version: 1.0.0
Bundle-Localization: plugin
Require-Bundle: org.apache.geronimo.j2g.common,
- org.eclipse.core.runtime,
+ org.apache.geronimo.j2g.jasper,
+ org.apache.geronimo.j2g.util,
org.eclipse.core.resources,
+ org.eclipse.core.runtime,
+ org.eclipse.jdt,
org.eclipse.jdt.core,
org.eclipse.jdt.launching,
- org.eclipse.jface.text,
- org.apache.geronimo.j2g.jasper
+ org.eclipse.jface.text
Bundle-Vendor: Apache.org
-Export-Package: org.apache.geronimo.j2g.sources
+Bundle-ClassPath: .,
+ lib/geronimo-security-1.1.jar,
+ lib/geronimo-util-1.1.jar
+Export-Package: org.apache.geronimo.j2g.sources,
+ org.apache.geronimo.j2g.sources.dependence,
+ org.apache.geronimo.j2g.sources.dependence.compatibility,
+ org.apache.geronimo.j2g.sources.environment
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/build.properties
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/build.properties?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/build.properties (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/build.properties Thu Jun 28 07:14:50 2007
@@ -18,5 +18,6 @@
source.. = src/
bin.includes = META-INF/,\
plugin.xml,\
- .
+ .,\
+ lib/
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/plugin.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/plugin.xml?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/plugin.xml (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/plugin.xml Thu Jun 28 07:14:50 2007
@@ -26,4 +26,16 @@
<run class="org.apache.geronimo.j2g.sources.SourceIdentificationTool"/>
</application>
</extension>
+ <extension
+ point="org.apache.geronimo.j2g.sources.migrations">
+ <migration
+ class="org.apache.geronimo.j2g.sources.dependence.DependenceJavaMigration">
+ </migration>
+ </extension>
+ <extension
+ point="org.apache.geronimo.j2g.sources.migrations">
+ <migration
+ class="org.apache.geronimo.j2g.sources.environment.EjbEnvJavaMigration">
+ </migration>
+ </extension>
</plugin>
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/pom.xml?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/pom.xml (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.sources/pom.xml Thu Jun 28 07:14:50 2007
@@ -29,9 +29,46 @@
<relativePath>../pom.xml</relativePath>
</parent>
<build>
+ <resources>
+ <resource>
+ <directory>.</directory>
+ <includes>
+ <include>plugin.xml</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>lib</directory>
+ <targetPath>lib</targetPath>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ </resource>
+ </resources>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-security</artifactId>
+ </artifactItem>
+ <artifactItem>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-util</artifactId>
+ </artifactItem>
+ </artifactItems>
+ <outputDirectory>lib</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
@@ -43,6 +80,19 @@
</plugins>
</build>
<dependencies>
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-security</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-util</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.tools</groupId>
+ <artifactId>org.apache.geronimo.j2g.util</artifactId>
+ <version>${version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.geronimo.tools</groupId>
<artifactId>org.apache.geronimo.j2g.jasper</artifactId>
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.util/.classpath
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.util/.classpath?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.util/.classpath (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.util/.classpath Thu Jun 28 07:14:50 2007
@@ -1,13 +1,24 @@
-<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="test"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/junit-4.3.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/pull-parser-2.1.10.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+ <classpathentry kind="src" path="." including="plugin.xml" excluding="**/*.java"/>
+ <classpathentry kind="src" path="lib" including="*.jar" excluding="**/*.java"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="test" output="target/test-classes"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/pull-parser/pull-parser/2.1.10/pull-parser-2.1.10.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jdom/jdom/1.0/jdom-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xerces/xmlParserAPIs/2.6.2/xmlParserAPIs-2.6.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar"/>
+ <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/ibm/icu/icu4j/2.6.1/icu4j-2.6.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xom/xom/1.0/xom-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xalan/xalan/2.6.0/xalan-2.6.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jaxen/jaxen/1.1/jaxen-1.1.jar"/>
+</classpath>
\ No newline at end of file
Modified: geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.util/.project
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.util/.project?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.util/.project (original)
+++ geronimo/sandbox/j2g/plugins/org.apache.geronimo.j2g.util/.project Thu Jun 28 07:14:50 2007
@@ -1,28 +1,29 @@
-<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.apache.geronimo.j2g.util</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+ <name>org.apache.geronimo.j2g.util</name>
+ <comment>JBoss to Geronimo Conversion Tool</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/Maven_Ant_Builder.launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Modified: geronimo/sandbox/j2g/plugins/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/j2g/plugins/pom.xml?view=diff&rev=551566&r1=551565&r2=551566
==============================================================================
--- geronimo/sandbox/j2g/plugins/pom.xml (original)
+++ geronimo/sandbox/j2g/plugins/pom.xml Thu Jun 28 07:14:50 2007
@@ -96,19 +96,9 @@
<modules>
<module>org.apache.geronimo.j2g.common</module>
<module>org.apache.geronimo.j2g.descriptors</module>
- <module>org.apache.geronimo.j2g.descriptors.app</module>
- <module>org.apache.geronimo.j2g.descriptors.cmp</module>
- <module>org.apache.geronimo.j2g.descriptors.ejb</module>
- <module>org.apache.geronimo.j2g.descriptors.web</module>
<module>org.apache.geronimo.j2g.jasper</module>
<module>org.apache.geronimo.j2g.resources</module>
- <module>org.apache.geronimo.j2g.resources.datasource</module>
- <module>org.apache.geronimo.j2g.resources.jms</module>
- <module>org.apache.geronimo.j2g.resources.mail</module>
- <module>org.apache.geronimo.j2g.resources.security</module>
<module>org.apache.geronimo.j2g.sources</module>
- <module>org.apache.geronimo.j2g.sources.dependence</module>
- <module>org.apache.geronimo.j2g.sources.environment</module>
<module>org.apache.geronimo.j2g.util</module>
</modules>
</project>