JBoss Tools SVN: r22034 - in trunk/esb/tests/org.jboss.tools.esb.core.test: src/org/jboss/tools/esb/core/test and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2010-05-12 09:36:39 -0400 (Wed, 12 May 2010)
New Revision: 22034
Added:
trunk/esb/tests/org.jboss.tools.esb.core.test/projects/Test/esb-1.2/jboss-esb-uninique.xml
Modified:
trunk/esb/tests/org.jboss.tools.esb.core.test/src/org/jboss/tools/esb/core/test/ESBModelTest.java
Log:
https://jira.jboss.org/jira/browse/JBDS-1197
Added: trunk/esb/tests/org.jboss.tools.esb.core.test/projects/Test/esb-1.2/jboss-esb-uninique.xml
===================================================================
--- trunk/esb/tests/org.jboss.tools.esb.core.test/projects/Test/esb-1.2/jboss-esb-uninique.xml (rev 0)
+++ trunk/esb/tests/org.jboss.tools.esb.core.test/projects/Test/esb-1.2/jboss-esb-uninique.xml 2010-05-12 13:36:39 UTC (rev 22034)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<jbossesb parameterReloadSecs="18"
+ xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml..."
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml... http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml...">
+ <providers>
+ <http-provider name="http">
+ <http-bus busid="secureFriends">
+ <protected-methods>
+ <method name="GET"/>
+ <method name="POST"/>
+ </protected-methods>
+ <!-- Only users in the "friend" role are allowed
+ access via the "GET" method. Unspecified
+ methods are not protected (i.e. are allowed)... -->
+ <allowed-roles>
+ <role name="friend"/>
+ </allowed-roles>
+ </http-bus>
+ <!-- Global exception mappings file... -->
+ <exception mappingsFile="/http-exception-mappings.properties"/>
+ </http-provider>
+ <http-provider name="http">
+ <http-bus busid="insecureFriends"/>
+ </http-provider>
+ </providers>
+</jbossesb>
Property changes on: trunk/esb/tests/org.jboss.tools.esb.core.test/projects/Test/esb-1.2/jboss-esb-uninique.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/esb/tests/org.jboss.tools.esb.core.test/src/org/jboss/tools/esb/core/test/ESBModelTest.java
===================================================================
--- trunk/esb/tests/org.jboss.tools.esb.core.test/src/org/jboss/tools/esb/core/test/ESBModelTest.java 2010-05-12 13:07:52 UTC (rev 22033)
+++ trunk/esb/tests/org.jboss.tools.esb.core.test/src/org/jboss/tools/esb/core/test/ESBModelTest.java 2010-05-12 13:36:39 UTC (rev 22034)
@@ -15,7 +15,7 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
-import org.jboss.tools.test.util.TestProjectProvider;
+import org.jboss.tools.common.test.util.TestProjectProvider;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
@@ -303,6 +303,18 @@
assertTrue(errorList.toString(), errorList.length() == 0);
}
+ public void testNonUniqueProviders() {
+ XModelObject object = getFileObject("esb-1.2", "jboss-esb-uninique.xml", ESBConstants.ENT_ESB_FILE_120);
+ XModelObject[] os = object.getChildByPath("Providers").getChildren();
+ assertEquals(2, os.length);
+
+ for (int i = 0; i < os.length; i++) {
+ String name = os[i].getAttributeValue("name");
+ assertEquals("http", name);
+ }
+
+ }
+
XModelObject getFileObject(String parentPath, String xmlname) {
return getFileObject(parentPath, xmlname, ESBConstants.ENT_ESB_FILE_101);
}
15 years, 11 months
JBoss Tools SVN: r22033 - in workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces: src/org/jboss/tools/jsf/vpe/icefaces/utill and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: mareshkau
Date: 2010-05-12 09:07:52 -0400 (Wed, 12 May 2010)
New Revision: 22033
Added:
workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/template/IceFacesSelectBooleanCheckboxTemplate.java
Modified:
workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/template/IceFacesOutputTextTemplate.java
workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/utill/VpeRendererUtil.java
workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/template/mock/impl/VpeFacesContext.java
workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/templates/vpe-templates-icefaces.xml
Log:
https://jira.jboss.org/jira/browse/JBIDE-4710
Modified: workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/template/IceFacesOutputTextTemplate.java
===================================================================
--- workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/template/IceFacesOutputTextTemplate.java 2010-05-12 13:02:43 UTC (rev 22032)
+++ workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/template/IceFacesOutputTextTemplate.java 2010-05-12 13:07:52 UTC (rev 22033)
@@ -14,6 +14,7 @@
import org.jboss.tools.jsf.vpe.icefaces.IceFacesActivator;
import org.jboss.tools.jsf.vpe.icefaces.utill.VpeRendererUtil;
+import org.jboss.tools.jsf.vpe.template.mock.impl.VpeFacesContext;
import org.jboss.tools.jsf.vpe.template.mock.impl.VpeUIComponent;
import org.jboss.tools.vpe.editor.context.VpePageContext;
import org.jboss.tools.vpe.editor.template.VpeAbstractTemplate;
@@ -36,6 +37,7 @@
public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
nsIDOMDocument visualDocument) {
try {
+ VpeFacesContext.getInstance().setResponseWriter(null);
Renderer render = new com.icesoft.faces.renderkit.dom_html_basic.TextRenderer();
VpeUIComponent uiComponent = new VpeUIComponent(
(Element) sourceNode);
Added: workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/template/IceFacesSelectBooleanCheckboxTemplate.java
===================================================================
--- workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/template/IceFacesSelectBooleanCheckboxTemplate.java (rev 0)
+++ workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/template/IceFacesSelectBooleanCheckboxTemplate.java 2010-05-12 13:07:52 UTC (rev 22033)
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.icefaces.template;
+
+import javax.faces.render.Renderer;
+
+import org.jboss.tools.jsf.vpe.icefaces.IceFacesActivator;
+import org.jboss.tools.jsf.vpe.icefaces.utill.VpeRendererUtil;
+import org.jboss.tools.jsf.vpe.template.mock.impl.VpeFacesContext;
+import org.jboss.tools.jsf.vpe.template.mock.impl.VpeUIComponent;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.template.VpeAbstractTemplate;
+import org.jboss.tools.vpe.editor.template.VpeCreationData;
+import org.jboss.tools.vpe.editor.template.VpeTemplateManager;
+import org.jboss.tools.vpe.editor.util.VisualDomUtil;
+import org.mozilla.interfaces.nsIDOMDocument;
+import org.mozilla.interfaces.nsIDOMElement;
+import org.mozilla.interfaces.nsIDOMNode;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * @author mareshkau
+ *
+ */
+public class IceFacesSelectBooleanCheckboxTemplate extends VpeAbstractTemplate {
+
+ public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
+ nsIDOMDocument visualDocument) {
+ try {
+ VpeFacesContext.getInstance().setResponseWriter(null);
+ Renderer render = new com.icesoft.faces.renderkit.dom_html_basic.CheckboxRenderer();
+ VpeUIComponent uiComponent = new VpeUIComponent(
+ (Element) sourceNode);
+ Node result = VpeRendererUtil.processRenderer(render, uiComponent);
+ nsIDOMNode resultVisualNode = VpeRendererUtil.createVisualNode(
+ result, visualDocument);
+ if (resultVisualNode.getNodeType() == Node.TEXT_NODE) {
+ nsIDOMElement domElement = VisualDomUtil
+ .createBorderlessContainer(visualDocument);
+ domElement.appendChild(resultVisualNode);
+ resultVisualNode = domElement;
+ }
+ return new VpeCreationData(resultVisualNode);
+ } catch (Throwable th) {
+ IceFacesActivator.getDefault().logError(th);
+ }
+ return VpeTemplateManager.getInstance().getDefTemplate().create(
+ pageContext, sourceNode, visualDocument);
+ }
+
+}
Modified: workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/utill/VpeRendererUtil.java
===================================================================
--- workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/utill/VpeRendererUtil.java 2010-05-12 13:02:43 UTC (rev 22032)
+++ workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/icefaces/utill/VpeRendererUtil.java 2010-05-12 13:07:52 UTC (rev 22033)
@@ -12,10 +12,8 @@
import javax.faces.component.UIComponent;
import javax.faces.render.Renderer;
-
-
+import org.jboss.tools.jsf.vpe.icefaces.IceFacesActivator;
import org.jboss.tools.jsf.vpe.template.mock.impl.VpeFacesContext;
-import org.jboss.tools.vpe.VpePlugin;
import org.mozilla.interfaces.nsIDOMDocument;
import org.mozilla.interfaces.nsIDOMElement;
import org.mozilla.interfaces.nsIDOMNode;
@@ -23,7 +21,6 @@
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-
import com.icesoft.faces.context.DOMContext;
/**
@@ -36,11 +33,13 @@
public static Node processRenderer(final Renderer render, final UIComponent uiComponent){
+
+
try {
render.encodeBegin(VpeFacesContext.getInstance(), uiComponent);
render.encodeEnd(VpeFacesContext.getInstance(), uiComponent);
} catch (Throwable e) {
- VpePlugin.getPluginLog().logError(e);
+ IceFacesActivator.getDefault().logError(e);
}
DOMContext domContext = DOMContext.getDOMContext(VpeFacesContext.getInstance(), uiComponent);
return domContext.getRootNode();
Modified: workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/template/mock/impl/VpeFacesContext.java
===================================================================
--- workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/template/mock/impl/VpeFacesContext.java 2010-05-12 13:02:43 UTC (rev 22032)
+++ workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/src/org/jboss/tools/jsf/vpe/template/mock/impl/VpeFacesContext.java 2010-05-12 13:07:52 UTC (rev 22033)
@@ -15,56 +15,75 @@
import javax.faces.context.ExternalContext;
import javax.faces.context.ResponseWriter;
+import org.jboss.tools.jsf.vpe.icefaces.IceFacesActivator;
import org.jboss.tools.jsf.vpe.template.mock.abstr.VpeAbstractFacesContext;
-
/**
- * Mock object for FacesContext.
- * It's need for using real renders in vpe templates
+ * Mock object for FacesContext. It's need for using real renders in vpe
+ * templates
*
* @author mareshkau
- *
+ *
*/
public class VpeFacesContext extends VpeAbstractFacesContext {
private static VpeFacesContext instance;
-
- private static final VpeDOMResponseWriter vpeDOMResponseWriter = new VpeDOMResponseWriter(null, null, null, null, null, null);
-
- private VpeFacesContext() throws Exception{
- //singleton
- super(VpeRequest.getInstance(),null,null,null, VpeConfiguration.getInstance(),null,null,null,null);
+
+ private VpeDOMResponseWriter vpeDOMResponseWriter;// = new
+ // VpeDOMResponseWriter(null,
+ // null, null, null,
+ // null, null);
+
+ private VpeFacesContext() throws Exception {
+ // singleton
+ super(VpeRequest.getInstance(), null, null, null, VpeConfiguration
+ .getInstance(), null, null, null, null);
}
-
- public static VpeFacesContext getInstance(){
- if(instance==null) {
+
+ public static VpeFacesContext getInstance() {
+ if (instance == null) {
try {
- FactoryFinder.setFactory(FactoryFinder.APPLICATION_FACTORY, VpeApplicationFactory.class.getName());
+ FactoryFinder.setFactory(FactoryFinder.APPLICATION_FACTORY,
+ VpeApplicationFactory.class.getName());
instance = new VpeFacesContext();
} catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ IceFacesActivator.getDefault().logError(e);
}
}
return instance;
}
-
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see javax.faces.context.FacesContext#getExternalContext()
*/
@Override
public ExternalContext getExternalContext() {
return VpeExternalContext.getInstance();
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see javax.faces.context.FacesContext#getResponseWriter()
*/
@Override
- public ResponseWriter getResponseWriter() {
+ public ResponseWriter getResponseWriter() {
+ if (this.vpeDOMResponseWriter == null) {
+ this.vpeDOMResponseWriter = new VpeDOMResponseWriter(null, null,
+ null, null, null, null);
+ }
return this.vpeDOMResponseWriter;
}
- /* (non-Javadoc)
+ public void setResponseWriter(VpeDOMResponseWriter responseWriter) {
+ this.vpeDOMResponseWriter = responseWriter;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
* @see javax.faces.context.FacesContext#getViewRoot()
*/
@Override
Modified: workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/templates/vpe-templates-icefaces.xml
===================================================================
--- workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/templates/vpe-templates-icefaces.xml 2010-05-12 13:02:43 UTC (rev 22032)
+++ workspace/mareshkau/org.jboss.tools.jsf.vpe.icefaces/templates/vpe-templates-icefaces.xml 2010-05-12 13:07:52 UTC (rev 22033)
@@ -24,4 +24,18 @@
</vpe:template>
</vpe:tag>
-</vpe:templates>
\ No newline at end of file
+ <vpe:tag name="ice:selectBooleanCheckbox" case-sensitive="yes">
+ <vpe:template children="yes" modify="yes"
+ class="org.jboss.tools.jsf.vpe.icefaces.template.IceFacesSelectBooleanCheckboxTemplate">
+ <vpe:resize>
+ <vpe:width width-attr="style.width" />
+ <vpe:height height-attr="style.height" />
+ </vpe:resize>
+ <vpe:dnd>
+ <vpe:drag start-enable="yes" />
+ <vpe:drop container="no"></vpe:drop>
+ </vpe:dnd>
+ </vpe:template>
+ </vpe:tag>
+
+</vpe:templates>
15 years, 11 months
JBoss Tools SVN: r22032 - trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2010-05-12 09:02:43 -0400 (Wed, 12 May 2010)
New Revision: 22032
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-6252
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2010-05-12 09:31:55 UTC (rev 22031)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2010-05-12 13:02:43 UTC (rev 22032)
@@ -41,6 +41,7 @@
import org.jboss.tools.cdi.core.IInjectionPoint;
import org.jboss.tools.cdi.core.IObserverMethod;
import org.jboss.tools.cdi.core.IParametedType;
+import org.jboss.tools.cdi.core.IParameter;
import org.jboss.tools.cdi.core.IProducer;
import org.jboss.tools.cdi.core.IProducerMethod;
import org.jboss.tools.cdi.core.IQualifierDeclaration;
@@ -561,8 +562,44 @@
}
public Set<IBeanMethod> resolveDisposers(IProducerMethod producer) {
- // TODO
- return new HashSet<IBeanMethod>();
+ Set<IBeanMethod> result = new HashSet<IBeanMethod>();
+ IClassBean cb = producer.getClassBean();
+ if(cb == null) return result;
+
+ Set<IParametedType> types = producer.getLegalTypes();
+ Set<IQualifierDeclaration> qs = producer.getQualifierDeclarations(true);
+
+ Set<IBeanMethod> ds = cb.getDisposers();
+ for (IBeanMethod m: ds) {
+ List<IParameter> ps = m.getParameters();
+ IParameter match = null;
+ for (IParameter p: ps) {
+ if(!p.isAnnotationPresent(CDIConstants.DISPOSES_ANNOTATION_TYPE_NAME)) continue;
+ IParametedType type = p.getType();
+ if(!containsType(types, type)) continue;
+ Set<IType> qts = new HashSet<IType>();
+ Set<String> ts = ((Parameter)p).getAnnotationTypes();
+ for (String t: ts) {
+ QualifierElement q = getQualifier(t);
+ if(q != null && q.getSourceType() != null) {
+ qts.add(q.getSourceType());
+ }
+ }
+ IType[] qtsa = qts.toArray(new IType[0]);
+ try {
+ if(areMatchingQualifiers(qs, qtsa)) {
+ match = p;
+ break;
+ }
+ } catch (CoreException e) {
+ CDICorePlugin.getDefault().logError(e);
+ }
+ }
+ if(match != null) {
+ result.add(m);
+ }
+ }
+ return result;
}
public CDIProject getCDIProject() {
15 years, 11 months
JBoss Tools SVN: r22031 - trunk/jsf/tests/org.jboss.tools.jsf.vpe.richfaces.test/resources/richFacesTest/WebContent/pages/components.
by jbosstools-commits@lists.jboss.org
Author: dmaliarevich
Date: 2010-05-12 05:31:55 -0400 (Wed, 12 May 2010)
New Revision: 22031
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.vpe.richfaces.test/resources/richFacesTest/WebContent/pages/components/dataDefinitionList.xhtml.xml
Log:
https://jira.jboss.org/jira/browse/JBIDE-3373 , JUnits was updated.
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.richfaces.test/resources/richFacesTest/WebContent/pages/components/dataDefinitionList.xhtml.xml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.richfaces.test/resources/richFacesTest/WebContent/pages/components/dataDefinitionList.xhtml.xml 2010-05-12 08:53:34 UTC (rev 22030)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.richfaces.test/resources/richFacesTest/WebContent/pages/components/dataDefinitionList.xhtml.xml 2010-05-12 09:31:55 UTC (rev 22031)
@@ -103,7 +103,7 @@
<test id="dataDefinitionList1">
<DIV CLASS="dr-pnl rich-panel ">
<DIV VPE-FACET="header" CLASS="dr-pnl-h rich-panel-header "
- STYLE="background-image: url(file:///D:/Projects/jboss_trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/common/background.gif);">
+ STYLE="/background-image: url\(.*resources/common/background.gif\);/">
<SPAN CLASS="vpe-text">
Data Defenition list
</SPAN>
15 years, 11 months
JBoss Tools SVN: r22030 - in trunk/jsf/plugins/org.jboss.tools.jsf: src/org/jboss/tools/jsf/jsf2 and 8 other directories.
by jbosstools-commits@lists.jboss.org
Author: yzhishko
Date: 2010-05-12 04:53:34 -0400 (Wed, 12 May 2010)
New Revision: 22030
Added:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/model/JSF2ComponentModelManager.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSF2RenameParticipant.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSf2MoveParticipant.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/util/
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/util/JSF2ComponentUtil.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/util/JSF2ResourceUtil.java
Removed:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentModelManager.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentUtil.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ResourceUtil.java
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/messages/JSFUIMessages.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/messages/messages.properties
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2ComponentsValidator.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2SourceValidator.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2XMLValidator.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2CompositeAttrsProposal.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2CompositeComponentProposal.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2QuickFixProcessor.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2ResourcesFolderProposal.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2AttrTempComponent.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2ComponentFactory.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2CompositeTempComponent.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2URITempComponent.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentRecognizer.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-5942 - refactor to JSF2 composite components (rename/move) was added
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2010-05-12 08:53:34 UTC (rev 22030)
@@ -529,6 +529,9 @@
caseSensitive="false"
ext="jsp">
</fileext>
+ <contentType
+ id="org.eclipse.jst.jsp.core.jspsource">
+ </contentType>
</rules>
</include>
</validator>
@@ -592,4 +595,54 @@
super="org.eclipse.wst.sse.ui.temp.warning">
</type>
</extension>
+ <extension
+ point="org.eclipse.ltk.core.refactoring.renameParticipants">
+ <renameParticipant
+ class="org.jboss.tools.jsf.jsf2.refactoring.JSF2RenameParticipant"
+ id="org.jboss.tools.jsf.jsf2renameParticipant"
+ name="JSF 2 Rename Participant">
+ <enablement>
+ <with
+ variable="affectedNatures">
+ <iterate
+ operator="or">
+ <equals
+ value="org.jboss.tools.jsf.jsfnature">
+ </equals>
+ </iterate>
+ </with>
+ <with
+ variable="element">
+ <instanceof
+ value="org.eclipse.core.resources.IFile">
+ </instanceof>
+ </with>
+ </enablement>
+ </renameParticipant>
+ </extension>
+ <extension
+ point="org.eclipse.ltk.core.refactoring.moveParticipants">
+ <moveParticipant
+ class="org.jboss.tools.jsf.jsf2.refactoring.JSf2MoveParticipant"
+ id="org.jboss.tools.jsf.jsf2moveParticipant"
+ name="JSF 2 Move Participant">
+ <enablement>
+ <with
+ variable="affectedNatures">
+ <iterate
+ operator="or">
+ <equals
+ value="org.jboss.tools.jsf.jsfnature">
+ </equals>
+ </iterate>
+ </with>
+ <with
+ variable="element">
+ <instanceof
+ value="org.eclipse.core.resources.IFolder">
+ </instanceof>
+ </with>
+ </enablement>
+ </moveParticipant>
+ </extension>
</plugin>
Copied: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/model/JSF2ComponentModelManager.java (from rev 21981, trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentModelManager.java)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/model/JSF2ComponentModelManager.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/model/JSF2ComponentModelManager.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -0,0 +1,507 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jsf.jsf2.model;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Scanner;
+import java.util.Set;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jdt.internal.core.JarEntryFile;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.wst.html.core.internal.encoding.HTMLModelLoader;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument;
+import org.eclipse.wst.validation.ValidationFramework;
+import org.eclipse.wst.xml.core.internal.document.ElementImpl;
+import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.format.DocumentNodeFormatter;
+import org.jboss.tools.jsf.JSFModelPlugin;
+import org.jboss.tools.jsf.jsf2.util.JSF2ComponentUtil;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+@SuppressWarnings("restriction")
+public class JSF2ComponentModelManager {
+
+ private static JSF2ComponentModelManager instance = new JSF2ComponentModelManager();
+
+ private JSF2ComponentModelManager() {
+
+ }
+
+ public static JSF2ComponentModelManager getManager() {
+ return instance;
+ }
+
+ public IFile updateJSF2CompositeComponentFile(
+ final IFile componentFileContatiner, final String[] attrNames) {
+ IFile file = updateFileContent(new EditableDOMFile() {
+
+ @Override
+ public IFile getFile() {
+ return componentFileContatiner;
+ }
+
+ @Override
+ protected void edit(IDOMModel model) throws CoreException,
+ IOException {
+ IDOMDocument document = model.getDocument();
+ updateJSF2CompositeComponent(document, attrNames);
+ IStructuredDocument structuredDocument = document
+ .getStructuredDocument();
+ String text = structuredDocument.getText();
+ model.reload(new ByteArrayInputStream(text.getBytes()));
+ model.save();
+ }
+ });
+ return file;
+ }
+
+ public void renameCompositeComponents(IResource resource, String URI,
+ String oldName, String newName) throws CoreException {
+ if (resource instanceof IFile) {
+ IFile file = (IFile) resource;
+ renameCompositeComponentsInFile(file, URI, oldName, newName);
+ } else if (resource instanceof IProject) {
+ IResource[] children = ((IProject) resource).members();
+ if (children != null) {
+ for (int i = 0; i < children.length; i++) {
+ renameCompositeComponents(children[i], URI, oldName,
+ newName);
+ }
+ }
+ } else if (resource instanceof IFolder) {
+ IResource[] children = ((IFolder) resource).members();
+ if (children != null) {
+ for (int i = 0; i < children.length; i++) {
+ renameCompositeComponents(children[i], URI, oldName,
+ newName);
+ }
+ }
+ }
+ }
+
+ private boolean isFileCorrect(IFile file) {
+ if (file == null) {
+ return false;
+ }
+ if (!"xhtml".equals(file.getFileExtension()) && !"jsp".equals(file.getFileExtension())) { //$NON-NLS-1$ //$NON-NLS-2$
+ IContentType contentType = IDE.getContentType(file);
+ if (contentType == null) {
+ return false;
+ }
+ String id = contentType.getId();
+ if (!"org.eclipse.jst.jsp.core.jspsource".equals(id) && !"org.eclipse.wst.html.core.htmlsource".equals(id)) { //$NON-NLS-1$ //$NON-NLS-2$
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private void renameCompositeComponentsInFile(final IFile file,
+ final String URI, final String oldName, final String newName) {
+ if (!isFileCorrect(file)) {
+ return;
+ }
+ updateFileContent(new EditableDOMFile() {
+
+ @Override
+ public IFile getFile() {
+ return file;
+ }
+
+ @Override
+ protected void edit(IDOMModel model) throws CoreException,
+ IOException {
+ IDOMDocument document = model.getDocument();
+ Map<String, List<Element>> compositeComponentsMap = JSF2ComponentUtil
+ .findCompositeComponents(document);
+ List<Element> compositeComponents = compositeComponentsMap
+ .get(URI);
+ if (compositeComponents != null) {
+ for (Element element : compositeComponents) {
+ if (oldName.equals(element.getLocalName())) {
+ renameElement((IDOMElement) element, oldName,
+ newName);
+ }
+ }
+ model.save();
+ ValidationFramework.getDefault().validate(file,
+ new NullProgressMonitor());
+ }
+ }
+ });
+ }
+
+ public void renameURIs(IResource resource, Map<String, String> urisMap)
+ throws CoreException {
+ if (resource instanceof IFile) {
+ IFile file = (IFile) resource;
+ renameURIsInFile(file, urisMap);
+ } else if (resource instanceof IProject) {
+ IResource[] children = ((IProject) resource).members();
+ if (children != null) {
+ for (int i = 0; i < children.length; i++) {
+ renameURIs(children[i], urisMap);
+ }
+ }
+ } else if (resource instanceof IFolder) {
+ IResource[] children = ((IFolder) resource).members();
+ if (children != null) {
+ for (int i = 0; i < children.length; i++) {
+ renameURIs(children[i], urisMap);
+ }
+ }
+ }
+ }
+
+ private void renameURIsInFile(final IFile file,
+ final Map<String, String> urisMap) {
+ if (!isFileCorrect(file)) {
+ return;
+ }
+ updateFileContent(new EditableDOMFile() {
+
+ @Override
+ public IFile getFile() {
+ return file;
+ }
+
+ @Override
+ protected void edit(IDOMModel model) throws CoreException,
+ IOException {
+ IDOMDocument document = model.getDocument();
+ IDOMAttr[] uriAttrs = JSF2ComponentUtil
+ .findURIContainers(document);
+ for (int i = 0; i < uriAttrs.length; i++) {
+ if (urisMap.containsKey(uriAttrs[i].getValue())) {
+ renameURIAttr(uriAttrs[i], urisMap.get(uriAttrs[i]
+ .getValue()));
+ }
+ }
+ model.save();
+ ValidationFramework.getDefault().validate(file,
+ new NullProgressMonitor());
+ }
+
+ });
+ }
+
+ private void renameURIAttr(IDOMAttr idomAttr, final String replaceValue) {
+ int startOffset = idomAttr.getStartOffset();
+ String attrValue = idomAttr.getValue();
+ IStructuredDocument document = idomAttr.getStructuredDocument();
+ String value = document.getText().substring(idomAttr.getStartOffset());
+ value = value.substring(0, value.indexOf(attrValue)
+ + idomAttr.getValue().length());
+ try {
+ document.replace(startOffset + value.indexOf(attrValue), attrValue
+ .length(), replaceValue);
+ } catch (BadLocationException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ }
+ idomAttr.getName();
+ }
+
+ private void renameElement(final IDOMElement element, final String oldName,
+ final String newName) {
+ String sourceString = element.getSource();
+ IStructuredDocument structuredDocument = element
+ .getStructuredDocument();
+ int startOffset = element.getStartOffset();
+ int endStartOffset = element.getEndStartOffset();
+ int endOffset = element.getEndOffset();
+ try {
+ if (endOffset != endStartOffset) {
+ structuredDocument.replace(sourceString.lastIndexOf(oldName)
+ + startOffset, oldName.length(), newName);
+ }
+ structuredDocument.replace(element.getStartOffset()
+ + sourceString.indexOf(oldName), oldName.length(), newName);
+ } catch (BadLocationException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ }
+ }
+
+ private void updateJSF2CompositeComponent(IDOMDocument componentDoc,
+ String[] attrNames) {
+ IDOMElement[] interfaceElement = new IDOMElement[1];
+ findInterfaceComponent(componentDoc, interfaceElement);
+ createCompositeCompInterface(interfaceElement[0], attrNames);
+ }
+
+ private void findInterfaceComponent(Node node,
+ IDOMElement[] interfaceElement) {
+ if (node instanceof IDOMDocument) {
+ IDOMDocument document = (IDOMDocument) node;
+ findInterfaceComponent(document.getDocumentElement(),
+ interfaceElement);
+ }
+ if (node instanceof ElementImpl) {
+ ElementImpl impl = (ElementImpl) node;
+ String nameSpace = impl.getNamespaceURI();
+ if (JSF2ResourceUtil.JSF2_URI_PREFIX.equals(nameSpace)) {
+ String nodeName = impl.getLocalName();
+ if ("interface".equals(nodeName)) { //$NON-NLS-1$
+ interfaceElement[0] = impl;
+ return;
+ }
+ } else {
+ NodeList nodeList = node.getChildNodes();
+ if (nodeList != null) {
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ findInterfaceComponent(nodeList.item(i),
+ interfaceElement);
+ }
+ }
+ }
+ }
+ }
+
+ private void createCompositeCompInterface(IDOMElement element,
+ String[] attrNames) {
+ Document document = (Document) element.getOwnerDocument();
+ String prefix = element.getPrefix();
+ Set<String> existInerfaceAttrs = getInterfaceAttrs(element);
+ if (prefix != null && !"".equals(prefix)) { //$NON-NLS-1$
+ for (int i = 0; i < attrNames.length; i++) {
+ if (!existInerfaceAttrs.contains(attrNames[i])) {
+ Element attrEl = document.createElementNS(
+ JSF2ResourceUtil.JSF2_URI_PREFIX, prefix
+ + ":attribute"); //$NON-NLS-1$
+ attrEl.setAttribute("name", attrNames[i]); //$NON-NLS-1$
+ element.appendChild(attrEl);
+ }
+ }
+ } else {
+ for (int i = 0; i < attrNames.length; i++) {
+ if (!existInerfaceAttrs.contains(attrNames[i])) {
+ Element attrEl = document.createElementNS(
+ JSF2ResourceUtil.JSF2_URI_PREFIX, "attribute"); //$NON-NLS-1$
+ attrEl.setAttribute("name", attrNames[i]); //$NON-NLS-1$
+ element.appendChild(attrEl);
+ }
+ }
+ }
+ DocumentNodeFormatter formatter = new DocumentNodeFormatter();
+ formatter.format(document);
+ }
+
+ public IFile revalidateCompositeComponentFile(IFile file) {
+ IDOMDocument document = getReadableDOMDocument(file);
+ if (document == null) {
+ return null;
+ }
+ IDOMElement interfaceElement = checkCompositeInterface(document);
+ if (interfaceElement == null) {
+ return null;
+ }
+ return file;
+ }
+
+ public IDOMElement checkCompositeInterface(IDOMDocument document) {
+ if (document == null) {
+ return null;
+ }
+ Element element = document.getDocumentElement();
+ if (element == null) {
+ return null;
+ }
+ if (!"html".equals(element.getNodeName())) { //$NON-NLS-1$
+ return null;
+ }
+ ElementImpl elementImpl = (ElementImpl) element;
+ if (!"http://www.w3.org/1999/xhtml".equals(elementImpl.getNamespaceURI())) { //$NON-NLS-1$
+ return null;
+ }
+ IDOMElement[] interfaceElement = new IDOMElement[1];
+ findInterfaceComponent(element, interfaceElement);
+ return interfaceElement[0];
+ }
+
+ public static IDOMDocument getReadableDOMDocument(IFile file) {
+ IDOMDocument document = null;
+ IModelManager manager = StructuredModelManager.getModelManager();
+ if (manager == null) {
+ return document;
+ }
+ IStructuredModel model = null;
+ try {
+ model = manager.getModelForRead(file);
+ if (model instanceof IDOMModel) {
+ IDOMModel domModel = (IDOMModel) model;
+ document = domModel.getDocument();
+ }
+ } catch (CoreException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ } catch (IOException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ } finally {
+ if (model != null) {
+ model.releaseFromRead();
+ }
+ }
+ return document;
+ }
+
+ public static IDOMDocument getReadableDOMDocument(JarEntryFile file) {
+ IDOMDocument document = null;
+ IStructuredModel model = null;
+ InputStream inputStream;
+ try {
+ inputStream = file.getContents();
+ if (inputStream != null) {
+ StringBuffer buffer = new StringBuffer(""); //$NON-NLS-1$
+ Scanner in = new Scanner(inputStream);
+ while (in.hasNextLine()) {
+ buffer.append(in.nextLine());
+ }
+ model = new HTMLModelLoader().newModel();
+ model.setStructuredDocument(new JobSafeStructuredDocument(
+ new XMLSourceParser()));
+ model.getStructuredDocument().set(buffer.toString());
+ if (model instanceof IDOMModel) {
+ document = ((IDOMModel) model).getDocument();
+ }
+ }
+ } catch (CoreException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ } finally {
+ model = null;
+ }
+ return document;
+ }
+
+ public static IDOMDocument getReadableDOMDocument(IDocument textDocument) {
+ IDOMDocument document = null;
+ if (!(textDocument instanceof IStructuredDocument)) {
+ return document;
+ }
+ IModelManager manager = StructuredModelManager.getModelManager();
+ if (manager == null) {
+ return document;
+ }
+ IStructuredModel model = null;
+ try {
+ model = manager.getModelForRead((IStructuredDocument) textDocument);
+ if (model instanceof IDOMModel) {
+ IDOMModel domModel = (IDOMModel) model;
+ document = domModel.getDocument();
+ }
+ } finally {
+ if (model != null) {
+ model.releaseFromRead();
+ }
+ }
+ return document;
+ }
+
+ public Set<String> getInterfaceAttrs(IDOMElement interfaceElement) {
+ Set<String> interfaceAttrs = new HashSet<String>(0);
+ if (interfaceElement != null) {
+ String prefix = interfaceElement.getPrefix();
+ String nodeName = "attribute"; //$NON-NLS-1$
+ if (prefix != null && !"".equals(prefix)) { //$NON-NLS-1$
+ nodeName = prefix + ":" + nodeName; //$NON-NLS-1$
+ }
+ NodeList attrsElements = interfaceElement
+ .getElementsByTagName(nodeName);
+ if (attrsElements != null) {
+ for (int i = 0; i < attrsElements.getLength(); i++) {
+ Node el = attrsElements.item(i);
+ if (el instanceof IDOMElement) {
+ IDOMElement element = (IDOMElement) el;
+ String attrvalue = element.getAttribute("name"); //$NON-NLS-1$
+ if (attrvalue != null && !"".equals(attrvalue)) { //$NON-NLS-1$
+ interfaceAttrs.add(attrvalue);
+ }
+ }
+ }
+ }
+ }
+ return interfaceAttrs;
+ }
+
+ private abstract class EditableDOMFile {
+
+ public EditableDOMFile() {
+ }
+
+ public IFile editFile() {
+ IFile file = getFile();
+ if (file == null) {
+ return file;
+ }
+ IModelManager manager = StructuredModelManager.getModelManager();
+ if (manager == null) {
+ return file;
+ }
+ IStructuredModel model = null;
+ try {
+ model = manager.getModelForEdit(file);
+ if (model instanceof IDOMModel) {
+ IDOMModel domModel = (IDOMModel) model;
+ edit(domModel);
+ }
+ } catch (CoreException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ } catch (IOException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ } finally {
+ if (model != null) {
+ model.releaseFromEdit();
+ }
+ }
+ return file;
+ };
+
+ protected abstract void edit(IDOMModel model) throws CoreException,
+ IOException;
+
+ public abstract IFile getFile();
+
+ }
+
+ private IFile updateFileContent(EditableDOMFile domFile) {
+ return domFile.editFile();
+ }
+
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSF2RenameParticipant.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSF2RenameParticipant.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSF2RenameParticipant.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jsf.jsf2.refactoring;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
+import org.eclipse.ui.ide.IDE;
+import org.jboss.tools.jsf.jsf2.model.JSF2ComponentModelManager;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
+import org.jboss.tools.jsf.messages.JSFUIMessages;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+public class JSF2RenameParticipant extends RenameParticipant {
+
+ private IProject project;
+ private String URI;
+ private String oldFileName;
+
+ @Override
+ public RefactoringStatus checkConditions(IProgressMonitor pm,
+ CheckConditionsContext context) throws OperationCanceledException {
+ return new RefactoringStatus();
+ }
+
+ @Override
+ public Change createChange(IProgressMonitor pm) throws CoreException,
+ OperationCanceledException {
+ String newFileName = getArguments().getNewName();
+ if (project == null || newFileName == null || oldFileName == null) {
+ return null;
+ }
+ oldFileName = oldFileName.substring(0, oldFileName.lastIndexOf('.'));
+ newFileName = newFileName.substring(0, newFileName.lastIndexOf('.'));
+ JSF2ComponentModelManager.getManager().renameCompositeComponents(
+ project, URI, oldFileName, newFileName);
+ project = null;
+ URI = null;
+ oldFileName = null;
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ return JSFUIMessages.Rename_JSF_2_Composite_Components;
+ }
+
+ @Override
+ protected boolean initialize(Object element) {
+ if (element instanceof IFile) {
+ IFile file = (IFile) element;
+ URI = calcURIFromPath(file.getFullPath());
+ if (checkContentType(file)) {
+ project = file.getProject();
+ oldFileName = file.getName();
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean checkContentType(IFile file) {
+ if (URI == null || URI.equals("")) { //$NON-NLS-1$
+ return false;
+ }
+ if (!"xhtml".equals(file.getFileExtension())) { //$NON-NLS-1$
+ return false;
+ }
+ IContentType contentType = IDE.getContentType(file);
+ if (!"org.eclipse.wst.html.core.htmlsource".equals(contentType.getId())) { //$NON-NLS-1$
+ return false;
+ }
+ if ((JSF2ComponentModelManager.getManager()
+ .checkCompositeInterface(JSF2ComponentModelManager
+ .getReadableDOMDocument(file))) == null) {
+ return false;
+ }
+ return true;
+ }
+
+ private String calcURIFromPath(IPath path) {
+ StringBuilder uri = new StringBuilder(""); //$NON-NLS-1$
+ String[] segments = path.segments();
+ if (segments.length > 3) {
+ if (segments[2].equals("resources")) { //$NON-NLS-1$
+ for (int i = 3; i < segments.length - 1; i++) {
+ uri.append("/" + segments[i]); //$NON-NLS-1$
+ }
+ uri.insert(0, JSF2ResourceUtil.JSF2_URI_PREFIX);
+ }
+ }
+ return uri.toString();
+ }
+
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSf2MoveParticipant.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSf2MoveParticipant.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSf2MoveParticipant.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -0,0 +1,133 @@
+package org.jboss.tools.jsf.jsf2.refactoring;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.MoveParticipant;
+import org.jboss.tools.jsf.JSFModelPlugin;
+import org.jboss.tools.jsf.jsf2.model.JSF2ComponentModelManager;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
+import org.jboss.tools.jsf.messages.JSFUIMessages;
+
+public class JSf2MoveParticipant extends MoveParticipant {
+
+ private IProject project;
+ private Map<String, String> urisMap;
+
+ @Override
+ public RefactoringStatus checkConditions(IProgressMonitor pm,
+ CheckConditionsContext context) throws OperationCanceledException {
+ return new RefactoringStatus();
+ }
+
+ @Override
+ public Change createChange(IProgressMonitor pm) throws CoreException,
+ OperationCanceledException {
+ if (project != null) {
+ JSF2ComponentModelManager.getManager().renameURIs(project, urisMap);
+ }
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ return JSFUIMessages.Refactoring_JSF_2_resources;
+ }
+
+ @Override
+ protected boolean initialize(Object element) {
+ if (element instanceof IFolder) {
+ IFolder folder = (IFolder) element;
+ if (checkResourceFolderPath(folder.getFullPath())) {
+ Object object = getArguments().getDestination();
+ if (object instanceof IFolder) {
+ if (folder.getProject() != ((IFolder) object).getProject()) {
+ return false;
+ }
+ if (checkDistFolderPath(((IFolder) object).getFullPath())) {
+ project = folder.getProject();
+ invokePossibleURIs(folder, (IFolder) object);
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean checkDistFolderPath(IPath fullPath) {
+ String[] segments = fullPath.segments();
+ if (segments.length > 2) {
+ if (segments[2].equals("resources")) { //$NON-NLS-1$
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private void invokePossibleURIs(IFolder srcFolder, IFolder distFolder) {
+ String newFirstURIPart = createJSF2URIFromPath(distFolder.getFullPath());
+ String oldFirstURIPart = createJSF2URIFromPath(srcFolder.getFullPath());
+ oldFirstURIPart = oldFirstURIPart.substring(0, oldFirstURIPart
+ .lastIndexOf('/'));
+ Set<String> oldURIs = new HashSet<String>();
+ invokeOldPossibleURIs(srcFolder, oldURIs);
+ urisMap = new HashMap<String, String>();
+ for (String oldURI : oldURIs) {
+ urisMap.put(oldURI, newFirstURIPart
+ + oldURI.replaceFirst(oldFirstURIPart, "")); //$NON-NLS-1$
+ }
+ }
+
+ private void invokeOldPossibleURIs(IFolder srcFolder, Set<String> uris) {
+ uris.add(createJSF2URIFromPath(srcFolder.getFullPath()));
+ try {
+ IResource[] children = srcFolder.members();
+ if (children != null) {
+ for (int i = 0; i < children.length; i++) {
+ if (children[i] instanceof IFolder) {
+ invokeOldPossibleURIs((IFolder) children[i], uris);
+ }
+ }
+ }
+ } catch (CoreException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ }
+ }
+
+ private boolean checkResourceFolderPath(IPath path) {
+ String[] segments = path.segments();
+ if (segments.length > 3) {
+ if (segments[2].equals("resources")) { //$NON-NLS-1$
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private String createJSF2URIFromPath(IPath path) {
+ StringBuilder uri = new StringBuilder(""); //$NON-NLS-1$
+ String[] segments = path.segments();
+ if (segments.length > 3) {
+ if (segments[2].equals("resources")) { //$NON-NLS-1$
+ for (int i = 3; i < segments.length; i++) {
+ uri.append("/" + segments[i]); //$NON-NLS-1$
+ }
+ }
+ }
+ uri.insert(0, JSF2ResourceUtil.JSF2_URI_PREFIX);
+ return uri.toString();
+ }
+
+}
Copied: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/util/JSF2ComponentUtil.java (from rev 21981, trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentUtil.java)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/util/JSF2ComponentUtil.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/util/JSF2ComponentUtil.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jsf.jsf2.util;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.eclipse.wst.xml.core.internal.document.ElementImpl;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+@SuppressWarnings("restriction")
+public class JSF2ComponentUtil {
+
+ public static Map<String, List<Element>> findCompositeComponents(Node node) {
+ Map<String, List<Element>> elementsMap = new HashMap<String, List<Element>>(
+ 0);
+ findChildCompositeComponents(node, elementsMap);
+ return elementsMap;
+ }
+
+ private static void findChildCompositeComponents(Node node,
+ Map<String, List<Element>> elementsMap) {
+ if (node instanceof IDOMDocument) {
+ node = ((IDOMDocument) node).getDocumentElement();
+ findChildCompositeComponents(node, elementsMap);
+ } else if (node instanceof ElementImpl) {
+ ElementImpl elementImpl = (ElementImpl) node;
+ String namespaceURI = elementImpl.getNamespaceURI();
+ if (namespaceURI != null
+ && namespaceURI
+ .startsWith(JSF2ResourceUtil.JSF2_URI_PREFIX)
+ && !namespaceURI.equals(JSF2ResourceUtil.JSF2_URI_PREFIX)) {
+ List<Element> elements = elementsMap.get(namespaceURI);
+ if (elements == null) {
+ elements = new ArrayList<Element>(0);
+ }
+ elements.add(elementImpl);
+ elementsMap.put(namespaceURI, elements);
+ }
+ NodeList children = node.getChildNodes();
+ if (children != null) {
+ for (int i = 0; i < children.getLength(); i++) {
+ findChildCompositeComponents(children.item(i), elementsMap);
+ }
+ }
+ }
+ }
+
+ public static IDOMAttr[] findURIContainers(Node scanNode) {
+ List<IDOMAttr> attrs = new ArrayList<IDOMAttr>(0);
+ findChildURIContainers(scanNode, attrs);
+ return attrs.toArray(new IDOMAttr[0]);
+ }
+
+ private static void findChildURIContainers(Node node,
+ List<IDOMAttr> attrsList) {
+ if (node instanceof IDOMDocument) {
+ node = ((IDOMDocument) node).getDocumentElement();
+ findChildURIContainers(node, attrsList);
+ } else if (node instanceof ElementImpl) {
+ ElementImpl elementImpl = (ElementImpl) node;
+ NamedNodeMap attrsMap = elementImpl.getAttributes();
+ if (attrsMap != null && attrsMap.getLength() != 0) {
+ for (int i = 0; i < attrsMap.getLength(); i++) {
+ IDOMAttr attr = (IDOMAttr) attrsMap.item(i);
+ String attrValue = attr.getValue();
+ if (attrValue != null
+ && attrValue
+ .indexOf(JSF2ResourceUtil.JSF2_URI_PREFIX) > -1) {
+ String compPath = attrValue.replaceFirst(
+ JSF2ResourceUtil.JSF2_URI_PREFIX, ""); //$NON-NLS-1$
+ if (!"".equals(compPath.trim())) { //$NON-NLS-1$
+ if (isCorrectCompositeShemaAttrName(attr.getName())) {
+ attrsList.add(attr);
+ }
+ }
+ }
+ }
+ }
+ NodeList children = node.getChildNodes();
+ if (children != null) {
+ for (int i = 0; i < children.getLength(); i++) {
+ findChildURIContainers((IDOMNode) children.item(i),
+ attrsList);
+ }
+ }
+ }
+ }
+
+ private static boolean isCorrectCompositeShemaAttrName(String attrName) {
+ if (attrName == null) {
+ return false;
+ }
+ if ("xmlns".equals(attrName.trim()) || "uri".equals(attrName.trim())) { //$NON-NLS-1$ //$NON-NLS-2$
+ return true;
+ }
+ if (attrName.indexOf(':') < 0) {
+ return false;
+ }
+ attrName = attrName.substring(0, attrName.indexOf(':')).trim();
+ if ("xmlns".equals(attrName)) { //$NON-NLS-1$
+ return true;
+ }
+ return false;
+ }
+
+}
Copied: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/util/JSF2ResourceUtil.java (from rev 21981, trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ResourceUtil.java)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/util/JSF2ResourceUtil.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/util/JSF2ResourceUtil.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -0,0 +1,253 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jsf.jsf2.util;
+
+import java.util.zip.ZipEntry;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.core.JarEntryDirectory;
+import org.eclipse.jdt.internal.core.JarEntryFile;
+import org.eclipse.jdt.internal.core.JarEntryResource;
+import org.eclipse.jdt.internal.core.JarPackageFragmentRoot;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+import org.eclipse.wst.xml.core.internal.document.ElementImpl;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.jboss.tools.jsf.JSFModelPlugin;
+import org.jboss.tools.jsf.jsf2.model.JSF2ComponentModelManager;
+import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2TemplateManager;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+@SuppressWarnings("restriction")
+public class JSF2ResourceUtil {
+
+ public static final String JSF2_URI_PREFIX = "http://java.sun.com/jsf/composite"; //$NON-NLS-1$
+
+ public static final String COMPONENT_RESOURCE_PATH_KEY = "component_resource_path_key"; //$NON-NLS-1$
+
+ public static final int JAR_FILE_RESOURCE_TYPE = 1;
+
+ public static final int JAR_DIRECTORY_RESOURCE_TYPE = JAR_FILE_RESOURCE_TYPE << 1;
+
+ public static Object findCompositeComponentContainer(IProject project,
+ IDOMElement jsf2Element) {
+ ElementImpl elementImpl = (ElementImpl) jsf2Element;
+ String nameSpaceURI = elementImpl.getNamespaceURI();
+ if (nameSpaceURI == null || nameSpaceURI.indexOf(JSF2_URI_PREFIX) == -1) {
+ return null;
+ }
+ String nodeName = jsf2Element.getLocalName();
+ String relativeLocation = "/resources" + nameSpaceURI.replaceFirst( //$NON-NLS-1$
+ JSF2ResourceUtil.JSF2_URI_PREFIX, ""); //$NON-NLS-1$
+ IVirtualComponent component = ComponentCore.createComponent(project);
+ if (component != null) {
+ IVirtualFolder webRootFolder = component.getRootFolder().getFolder(
+ new Path("/")); //$NON-NLS-1$
+ IContainer folder = webRootFolder.getUnderlyingFolder();
+ IPath path = folder.getFullPath().append(relativeLocation).append(
+ "/" + nodeName + ".xhtml"); //$NON-NLS-1$ //$NON-NLS-2$
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file.isAccessible()) {
+ return file;
+ }
+ }
+ return searchInClassPath(project, "META-INF" + relativeLocation //$NON-NLS-1$
+ + "/" + nodeName + ".xhtml", JAR_FILE_RESOURCE_TYPE); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ private static JarEntryResource searchInClassPath(IProject project,
+ String classPathResource, int jarResourceType) {
+ IJavaProject javaProject = JavaCore.create(project);
+ try {
+ for (IPackageFragmentRoot fragmentRoot : javaProject
+ .getAllPackageFragmentRoots()) {
+ if (fragmentRoot instanceof JarPackageFragmentRoot) {
+ JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) fragmentRoot;
+ ZipEntry zipEntry = jarPackageFragmentRoot.getJar()
+ .getEntry(classPathResource);
+ if (zipEntry != null) {
+ if (jarResourceType == JAR_FILE_RESOURCE_TYPE) {
+ JarEntryFile fileInJar = new JarEntryFile(
+ classPathResource);
+ fileInJar.setParent(jarPackageFragmentRoot);
+ return fileInJar;
+ }
+ if (jarResourceType == JAR_DIRECTORY_RESOURCE_TYPE) {
+ JarEntryDirectory directoryInJar = new JarEntryDirectory(
+ classPathResource);
+ directoryInJar.setParent(jarPackageFragmentRoot);
+ return directoryInJar;
+ }
+ }
+ }
+ }
+ } catch (JavaModelException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ } catch (CoreException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ }
+ return null;
+ }
+
+ public static Object findResourcesFolderContainerByNameSpace(
+ IProject project, String nameSpaceURI) {
+ if (nameSpaceURI == null || nameSpaceURI.indexOf(JSF2_URI_PREFIX) == -1) {
+ return null;
+ }
+ String relativeLocation = "/resources" + nameSpaceURI.replaceFirst( //$NON-NLS-1$
+ JSF2ResourceUtil.JSF2_URI_PREFIX, ""); //$NON-NLS-1$
+ IVirtualComponent component = ComponentCore.createComponent(project);
+ if (component != null) {
+ IVirtualFolder webRootFolder = component.getRootFolder().getFolder(
+ new Path("/")); //$NON-NLS-1$
+ IContainer folder = webRootFolder.getUnderlyingFolder();
+ IPath path = folder.getFullPath().append(relativeLocation);
+ IFolder resFolder = ResourcesPlugin.getWorkspace().getRoot()
+ .getFolder(path);
+ if (resFolder.isAccessible()) {
+ return resFolder;
+ }
+ }
+ return searchInClassPath(project,
+ "META-INF" + relativeLocation, JAR_DIRECTORY_RESOURCE_TYPE); //$NON-NLS-1$
+ }
+
+ public static boolean isResourcesFolderExists(IProject project,
+ String nameSpaceURI) {
+ return findResourcesFolderContainerByNameSpace(project, nameSpaceURI) == null ? false
+ : true;
+ }
+
+ public static IFolder createResourcesFolderByNameSpace(IProject project,
+ String nameSpaceURI) throws CoreException {
+ IFolder compositeCompResFolder = null;
+ String relativeLocation = nameSpaceURI.replaceFirst(
+ JSF2ResourceUtil.JSF2_URI_PREFIX, ""); //$NON-NLS-1$
+ if (!project.exists()) {
+ return null;
+ }
+ if (!project.isAccessible()) {
+ try {
+ project.open(new NullProgressMonitor());
+ } catch (CoreException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ return compositeCompResFolder;
+ }
+ }
+ IVirtualComponent component = ComponentCore.createComponent(project);
+ if (component != null) {
+ IVirtualFolder webRootFolder = component.getRootFolder().getFolder(
+ new Path("/")); //$NON-NLS-1$
+ IContainer folder = webRootFolder.getUnderlyingFolder();
+ IFolder webFolder = ResourcesPlugin.getWorkspace().getRoot()
+ .getFolder(folder.getFullPath());
+ IFolder resourcesFolder = webFolder.getFolder("resources"); //$NON-NLS-1$
+ NullProgressMonitor monitor = new NullProgressMonitor();
+ if (!resourcesFolder.exists()) {
+ resourcesFolder.create(true, true, monitor);
+ }
+ String[] segments = new Path(relativeLocation).segments();
+ compositeCompResFolder = resourcesFolder;
+ for (int i = 0; i < segments.length; i++) {
+ compositeCompResFolder = compositeCompResFolder
+ .getFolder(segments[i]);
+ if (!compositeCompResFolder.exists()) {
+ compositeCompResFolder.create(true, true, monitor);
+ }
+ }
+
+ }
+ return compositeCompResFolder;
+ }
+
+ public static IFile createCompositeComponentFile(IProject project,
+ IPath resourceRelativePath) throws CoreException {
+ IFile compositeCompResFile = null;
+ if (!project.exists()) {
+ return null;
+ }
+ if (!project.isAccessible()) {
+ try {
+ project.open(new NullProgressMonitor());
+ } catch (CoreException e) {
+ JSFModelPlugin.getPluginLog().logError(e);
+ return compositeCompResFile;
+ }
+ }
+ IVirtualComponent component = ComponentCore.createComponent(project);
+ if (component != null) {
+ IVirtualFolder webRootFolder = component.getRootFolder().getFolder(
+ new Path("/")); //$NON-NLS-1$
+ IContainer folder = webRootFolder.getUnderlyingFolder();
+ IFolder webFolder = ResourcesPlugin.getWorkspace().getRoot()
+ .getFolder(folder.getFullPath());
+ IFolder resourcesFolder = webFolder.getFolder("resources"); //$NON-NLS-1$
+ NullProgressMonitor monitor = new NullProgressMonitor();
+ if (!resourcesFolder.exists()) {
+ resourcesFolder.create(true, true, monitor);
+ }
+ String[] segments = resourceRelativePath.segments();
+ IFolder componentPathFolder = resourcesFolder;
+ for (int i = 0; i < segments.length - 1; i++) {
+ componentPathFolder = componentPathFolder
+ .getFolder(segments[i]);
+ if (!componentPathFolder.exists()) {
+ componentPathFolder.create(true, true, monitor);
+ }
+ }
+ compositeCompResFile = componentPathFolder
+ .getFile(segments[segments.length - 1]);
+ if (!compositeCompResFile.exists()) {
+ compositeCompResFile.create(JSF2TemplateManager.getManager()
+ .createStreamFromTemplate("composite.xhtml"), true, //$NON-NLS-1$
+ monitor);
+ } else {
+ compositeCompResFile = JSF2ComponentModelManager.getManager()
+ .revalidateCompositeComponentFile(compositeCompResFile);
+ }
+ }
+ return compositeCompResFile;
+ }
+
+ public static IFile createCompositeComponentFile(IProject project,
+ IPath resourceRelativePath, String[] attrNames)
+ throws CoreException {
+ IFile jsf2ResFile = createCompositeComponentFile(project,
+ resourceRelativePath);
+ if (jsf2ResFile == null) {
+ return null;
+ }
+ if (attrNames == null || attrNames.length == 0) {
+ return jsf2ResFile;
+ }
+ return JSF2ComponentModelManager.getManager()
+ .updateJSF2CompositeComponentFile(jsf2ResFile, attrNames);
+ }
+
+}
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/messages/JSFUIMessages.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/messages/JSFUIMessages.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/messages/JSFUIMessages.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -128,6 +128,8 @@
public static String Create_JSF_2_Interface_Attr;
public static String Missing_JSF_2_Resources_Folder;
public static String Create_JSF_2_Resources_Folder;
+ public static String Rename_JSF_2_Composite_Components;
+ public static String Refactoring_JSF_2_resources;
static {
// load message values from bundle file
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/messages/messages.properties
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/messages/messages.properties 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/messages/messages.properties 2010-05-12 08:53:34 UTC (rev 22030)
@@ -104,4 +104,6 @@
Missing_JSF_2_Component_Attr=Attribute "{0}" is not defined for "{1}" composite component
Create_JSF_2_Interface_Attr=Create attribute in an interface declaration of a composite component
Missing_JSF_2_Resources_Folder=Resources folder "{0}" is missing in a project root directory
-Create_JSF_2_Resources_Folder=Create a folder container for JSF 2 resources
\ No newline at end of file
+Create_JSF_2_Resources_Folder=Create a folder container for JSF 2 resources
+Rename_JSF_2_Composite_Components=Rename JSF 2 composite components
+Refactoring_JSF_2_resources=Refactoring JSF 2 resources
\ No newline at end of file
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2ComponentsValidator.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2ComponentsValidator.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2ComponentsValidator.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -26,11 +26,11 @@
import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
import org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;
import org.jboss.tools.jsf.JSFModelPlugin;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.web.validation.jsf2.components.IJSF2ValidationComponent;
import org.jboss.tools.jsf.web.validation.jsf2.components.JSF2AttrTempComponent;
import org.jboss.tools.jsf.web.validation.jsf2.components.JSF2CompositeTempComponent;
import org.jboss.tools.jsf.web.validation.jsf2.components.JSF2URITempComponent;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jst.web.kb.IKbProject;
import org.jboss.tools.jst.web.kb.KbProjectFactory;
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2SourceValidator.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2SourceValidator.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2SourceValidator.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -26,12 +26,12 @@
import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
import org.eclipse.wst.validation.internal.provisional.core.IValidator;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.jboss.tools.jsf.jsf2.model.JSF2ComponentModelManager;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.web.validation.jsf2.components.IJSF2ValidationComponent;
import org.jboss.tools.jsf.web.validation.jsf2.components.JSF2AttrTempComponent;
import org.jboss.tools.jsf.web.validation.jsf2.components.JSF2CompositeTempComponent;
import org.jboss.tools.jsf.web.validation.jsf2.components.JSF2URITempComponent;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ComponentModelManager;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ResourceUtil;
/**
*
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2XMLValidator.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2XMLValidator.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/JSF2XMLValidator.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -24,10 +24,10 @@
import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
import org.jboss.tools.common.el.core.resolver.ELContext;
import org.jboss.tools.jsf.JSFModelPlugin;
+import org.jboss.tools.jsf.jsf2.model.JSF2ComponentModelManager;
+import org.jboss.tools.jsf.jsf2.util.JSF2ComponentUtil;
import org.jboss.tools.jsf.web.validation.jsf2.components.IJSF2ValidationComponent;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ComponentModelManager;
import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ComponentRecognizer;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ComponentUtil;
import org.jboss.tools.jst.web.kb.IPageContext;
import org.jboss.tools.jst.web.kb.PageContextFactory;
import org.jboss.tools.jst.web.kb.internal.XmlContextImpl;
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2CompositeAttrsProposal.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2CompositeAttrsProposal.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2CompositeAttrsProposal.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -19,10 +19,10 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.messages.JSFUIMessages;
import org.jboss.tools.jsf.web.validation.jsf2.JSF2XMLValidator;
import org.jboss.tools.jsf.web.validation.jsf2.components.IJSF2ValidationComponent;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ResourceUtil;
/**
*
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2CompositeComponentProposal.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2CompositeComponentProposal.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2CompositeComponentProposal.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -22,10 +22,10 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.messages.JSFUIMessages;
import org.jboss.tools.jsf.web.validation.jsf2.JSF2XMLValidator;
import org.jboss.tools.jsf.web.validation.jsf2.components.IJSF2ValidationComponent;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ResourceUtil;
/**
*
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2QuickFixProcessor.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2QuickFixProcessor.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2QuickFixProcessor.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -21,8 +21,8 @@
import org.eclipse.jface.text.quickassist.IQuickAssistProcessor;
import org.eclipse.jface.text.source.Annotation;
import org.eclipse.wst.sse.ui.StructuredTextInvocationContext;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.web.validation.jsf2.components.IJSF2ValidationComponent;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ResourceUtil;
/**
*
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2ResourcesFolderProposal.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2ResourcesFolderProposal.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/action/JSF2ResourcesFolderProposal.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -14,10 +14,10 @@
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.messages.JSFUIMessages;
import org.jboss.tools.jsf.web.validation.jsf2.JSF2XMLValidator;
import org.jboss.tools.jsf.web.validation.jsf2.components.IJSF2ValidationComponent;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ResourceUtil;
/**
*
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2AttrTempComponent.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2AttrTempComponent.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2AttrTempComponent.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -14,8 +14,8 @@
import java.text.MessageFormat;
import org.eclipse.wst.xml.core.internal.document.ElementImpl;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.messages.JSFUIMessages;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ResourceUtil;
/**
*
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2ComponentFactory.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2ComponentFactory.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2ComponentFactory.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -21,7 +21,7 @@
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ComponentModelManager;
+import org.jboss.tools.jsf.jsf2.model.JSF2ComponentModelManager;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2CompositeTempComponent.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2CompositeTempComponent.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2CompositeTempComponent.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -16,8 +16,8 @@
import java.util.List;
import org.eclipse.wst.xml.core.internal.document.ElementImpl;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.messages.JSFUIMessages;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ResourceUtil;
import org.w3c.dom.NamedNodeMap;
/**
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2URITempComponent.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2URITempComponent.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/components/JSF2URITempComponent.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -12,8 +12,9 @@
package org.jboss.tools.jsf.web.validation.jsf2.components;
import java.text.MessageFormat;
+
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.messages.JSFUIMessages;
-import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ResourceUtil;
/**
*
Deleted: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentModelManager.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentModelManager.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentModelManager.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -1,293 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.jsf.web.validation.jsf2.util;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashSet;
-import java.util.Scanner;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jdt.internal.core.JarEntryFile;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.html.core.internal.encoding.HTMLModelLoader;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.format.DocumentNodeFormatter;
-import org.jboss.tools.jsf.JSFModelPlugin;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- *
- * @author yzhishko
- *
- */
-
-@SuppressWarnings("restriction")
-public class JSF2ComponentModelManager {
-
- private static JSF2ComponentModelManager instance = new JSF2ComponentModelManager();
-
- private JSF2ComponentModelManager() {
-
- }
-
- public static JSF2ComponentModelManager getManager() {
- return instance;
- }
-
- public IFile updateJSF2CompositeComponentFile(
- IFile componentFileContatiner, String[] attrNames) {
- IDOMDocument document = null;
- IModelManager manager = StructuredModelManager.getModelManager();
- if (manager == null) {
- return componentFileContatiner;
- }
- IStructuredModel model = null;
- try {
- model = manager.getModelForEdit(componentFileContatiner);
- if (model instanceof IDOMModel) {
- IDOMModel domModel = (IDOMModel) model;
- model.reload(componentFileContatiner.getContents());
- document = domModel.getDocument();
- updateJSF2CompositeComponent(document, attrNames);
- componentFileContatiner.setContents(new ByteArrayInputStream(
- document.getStructuredDocument().getText().getBytes()),
- true, false, new NullProgressMonitor());
- }
- } catch (CoreException e) {
- JSFModelPlugin.getPluginLog().logError(e);
- } catch (IOException e) {
- JSFModelPlugin.getPluginLog().logError(e);
- } finally {
- if (model != null) {
- model.releaseFromEdit();
- }
- }
- return componentFileContatiner;
- }
-
- public void updateJSF2CompositeComponent(IDOMDocument componentDoc,
- String[] attrNames) {
- IDOMElement[] interfaceElement = new IDOMElement[1];
- findInterfaceComponent(componentDoc, interfaceElement);
- createCompositeCompInterface(interfaceElement[0], attrNames);
- }
-
- private void findInterfaceComponent(Node node,
- IDOMElement[] interfaceElement) {
- if (node instanceof IDOMDocument) {
- IDOMDocument document = (IDOMDocument) node;
- findInterfaceComponent(document.getDocumentElement(),
- interfaceElement);
- }
- if (node instanceof ElementImpl) {
- ElementImpl impl = (ElementImpl) node;
- String nameSpace = impl.getNamespaceURI();
- if (JSF2ResourceUtil.JSF2_URI_PREFIX.equals(nameSpace)) {
- String nodeName = impl.getLocalName();
- if ("interface".equals(nodeName)) { //$NON-NLS-1$
- interfaceElement[0] = impl;
- return;
- }
- } else {
- NodeList nodeList = node.getChildNodes();
- if (nodeList != null) {
- for (int i = 0; i < nodeList.getLength(); i++) {
- findInterfaceComponent(nodeList.item(i),
- interfaceElement);
- }
- }
- }
- }
- }
-
- private void createCompositeCompInterface(IDOMElement element,
- String[] attrNames) {
- Document document = (Document) element.getOwnerDocument();
- String prefix = element.getPrefix();
- Set<String> existInerfaceAttrs = getInterfaceAttrs(element);
- if (prefix != null && !"".equals(prefix)) { //$NON-NLS-1$
- for (int i = 0; i < attrNames.length; i++) {
- if (!existInerfaceAttrs.contains(attrNames[i])) {
- Element attrEl = document.createElementNS(
- JSF2ResourceUtil.JSF2_URI_PREFIX, prefix
- + ":attribute"); //$NON-NLS-1$
- attrEl.setAttribute("name", attrNames[i]); //$NON-NLS-1$
- element.appendChild(attrEl);
- }
- }
- } else {
- for (int i = 0; i < attrNames.length; i++) {
- if (!existInerfaceAttrs.contains(attrNames[i])) {
- Element attrEl = document.createElementNS(
- JSF2ResourceUtil.JSF2_URI_PREFIX, "attribute"); //$NON-NLS-1$
- attrEl.setAttribute("name", attrNames[i]); //$NON-NLS-1$
- element.appendChild(attrEl);
- }
- }
- }
- DocumentNodeFormatter formatter = new DocumentNodeFormatter();
- formatter.format(document);
- }
-
- public IFile revalidateCompositeComponentFile(IFile file) {
- IDOMDocument document = getReadableDOMDocument(file);
- if (document == null) {
- return null;
- }
- IDOMElement interfaceElement = checkCompositeInterface(document);
- if (interfaceElement == null) {
- return null;
- }
- return file;
- }
-
- public IDOMElement checkCompositeInterface(IDOMDocument document) {
- if (document == null) {
- return null;
- }
- Element element = document.getDocumentElement();
- if (element == null) {
- return null;
- }
- if (!"html".equals(element.getNodeName())) { //$NON-NLS-1$
- return null;
- }
- ElementImpl elementImpl = (ElementImpl) element;
- if (!"http://www.w3.org/1999/xhtml".equals(elementImpl.getNamespaceURI())) { //$NON-NLS-1$
- return null;
- }
- IDOMElement[] interfaceElement = new IDOMElement[1];
- findInterfaceComponent(document, interfaceElement);
- return interfaceElement[0];
- }
-
- public static IDOMDocument getReadableDOMDocument(IFile file) {
- IDOMDocument document = null;
- IModelManager manager = StructuredModelManager.getModelManager();
- if (manager == null) {
- return document;
- }
- IStructuredModel model = null;
- try {
- model = manager.getModelForRead(file);
- if (model instanceof IDOMModel) {
- IDOMModel domModel = (IDOMModel) model;
- document = domModel.getDocument();
- }
- } catch (CoreException e) {
- JSFModelPlugin.getPluginLog().logError(e);
- } catch (IOException e) {
- JSFModelPlugin.getPluginLog().logError(e);
- } finally {
- if (model != null) {
- model.releaseFromRead();
- }
- }
- return document;
- }
-
- public static IDOMDocument getReadableDOMDocument(JarEntryFile file) {
- IDOMDocument document = null;
- IStructuredModel model = null;
- InputStream inputStream;
- try {
- inputStream = file.getContents();
- if (inputStream != null) {
- StringBuffer buffer = new StringBuffer(""); //$NON-NLS-1$
- Scanner in = new Scanner(inputStream);
- while (in.hasNextLine()) {
- buffer.append(in.nextLine());
- }
- model = new HTMLModelLoader().newModel();
- model.setStructuredDocument(new JobSafeStructuredDocument(
- new XMLSourceParser()));
- model.getStructuredDocument().set(buffer.toString());
- if (model instanceof IDOMModel) {
- document = ((IDOMModel) model).getDocument();
- }
- }
- } catch (CoreException e) {
- JSFModelPlugin.getPluginLog().logError(e);
- } finally {
- model = null;
- }
- return document;
- }
-
- public static IDOMDocument getReadableDOMDocument(IDocument textDocument) {
- IDOMDocument document = null;
- if (!(textDocument instanceof IStructuredDocument)) {
- return document;
- }
- IModelManager manager = StructuredModelManager.getModelManager();
- if (manager == null) {
- return document;
- }
- IStructuredModel model = null;
- try {
- model = manager.getModelForRead((IStructuredDocument) textDocument);
- if (model instanceof IDOMModel) {
- IDOMModel domModel = (IDOMModel) model;
- document = domModel.getDocument();
- }
- } finally {
- if (model != null) {
- model.releaseFromRead();
- }
- }
- return document;
- }
-
- public Set<String> getInterfaceAttrs(IDOMElement interfaceElement) {
- Set<String> interfaceAttrs = new HashSet<String>(0);
- if (interfaceElement != null) {
- String prefix = interfaceElement.getPrefix();
- String nodeName = "attribute"; //$NON-NLS-1$
- if (prefix != null && !"".equals(prefix)) { //$NON-NLS-1$
- nodeName = prefix + ":" + nodeName; //$NON-NLS-1$
- }
- NodeList attrsElements = interfaceElement
- .getElementsByTagName(nodeName);
- if (attrsElements != null) {
- for (int i = 0; i < attrsElements.getLength(); i++) {
- Node el = attrsElements.item(i);
- if (el instanceof IDOMElement) {
- IDOMElement element = (IDOMElement) el;
- String attrvalue = element.getAttribute("name"); //$NON-NLS-1$
- if (attrvalue != null && !"".equals(attrvalue)) { //$NON-NLS-1$
- interfaceAttrs.add(attrvalue);
- }
- }
- }
- }
- }
- return interfaceAttrs;
- }
-
-}
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentRecognizer.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentRecognizer.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentRecognizer.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -17,6 +17,7 @@
import org.eclipse.jdt.internal.core.JarEntryFile;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.web.validation.jsf2.components.IJSF2ValidationComponent;
import org.jboss.tools.jsf.web.validation.jsf2.components.JSF2ComponentFactory;
Deleted: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentUtil.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentUtil.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ComponentUtil.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.jsf.web.validation.jsf2.util;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- *
- * @author yzhishko
- *
- */
-
-@SuppressWarnings("restriction")
-public class JSF2ComponentUtil {
-
- public static Map<String, List<Element>> findCompositeComponents(Node node) {
- Map<String, List<Element>> elementsMap = new HashMap<String, List<Element>>(
- 0);
- findChildCompositeComponents(node, elementsMap);
- return elementsMap;
- }
-
- private static void findChildCompositeComponents(Node node,
- Map<String, List<Element>> elementsMap) {
- if (node instanceof IDOMDocument) {
- node = ((IDOMDocument) node).getDocumentElement();
- findChildCompositeComponents(node, elementsMap);
- } else if (node instanceof ElementImpl) {
- ElementImpl elementImpl = (ElementImpl) node;
- String namespaceURI = elementImpl.getNamespaceURI();
- if (namespaceURI != null
- && namespaceURI
- .startsWith(JSF2ResourceUtil.JSF2_URI_PREFIX)
- && !namespaceURI.equals(JSF2ResourceUtil.JSF2_URI_PREFIX)) {
- List<Element> elements = elementsMap.get(namespaceURI);
- if (elements == null) {
- elements = new ArrayList<Element>(0);
- }
- elements.add(elementImpl);
- elementsMap.put(namespaceURI, elements);
- }
- NodeList children = node.getChildNodes();
- if (children != null) {
- for (int i = 0; i < children.getLength(); i++) {
- findChildCompositeComponents(children.item(i), elementsMap);
- }
- }
- }
- }
-
- public static IDOMAttr[] findURIContainers(Node scanNode) {
- List<IDOMAttr> attrs = new ArrayList<IDOMAttr>(0);
- findChildURIContainers(scanNode, attrs);
- return attrs.toArray(new IDOMAttr[0]);
- }
-
- private static void findChildURIContainers(Node node,
- List<IDOMAttr> attrsList) {
- if (node instanceof IDOMDocument) {
- node = ((IDOMDocument) node).getDocumentElement();
- findChildURIContainers(node, attrsList);
- } else if (node instanceof ElementImpl) {
- ElementImpl elementImpl = (ElementImpl) node;
- NamedNodeMap attrsMap = elementImpl.getAttributes();
- if (attrsMap != null && attrsMap.getLength() != 0) {
- for (int i = 0; i < attrsMap.getLength(); i++) {
- IDOMAttr attr = (IDOMAttr) attrsMap.item(i);
- String attrValue = attr.getValue();
- if (attrValue != null
- && attrValue
- .indexOf(JSF2ResourceUtil.JSF2_URI_PREFIX) > -1) {
- String compPath = attrValue.replaceFirst(
- JSF2ResourceUtil.JSF2_URI_PREFIX, ""); //$NON-NLS-1$
- if (!"".equals(compPath.trim())) { //$NON-NLS-1$
- if (isCorrectCompositeShemaAttrName(attr.getName())) {
- attrsList.add(attr);
- }
- }
- }
- }
- }
- NodeList children = node.getChildNodes();
- if (children != null) {
- for (int i = 0; i < children.getLength(); i++) {
- findChildURIContainers((IDOMNode) children.item(i),
- attrsList);
- }
- }
- }
- }
-
- private static boolean isCorrectCompositeShemaAttrName(String attrName) {
- if (attrName == null) {
- return false;
- }
- if ("xmlns".equals(attrName.trim()) || "uri".equals(attrName.trim())) { //$NON-NLS-1$ //$NON-NLS-2$
- return true;
- }
- if (attrName.indexOf(':') < 0) {
- return false;
- }
- attrName = attrName.substring(0, attrName.indexOf(':')).trim();
- if ("xmlns".equals(attrName)) { //$NON-NLS-1$
- return true;
- }
- return false;
- }
-
-}
Deleted: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ResourceUtil.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ResourceUtil.java 2010-05-11 20:51:21 UTC (rev 22029)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/jsf2/util/JSF2ResourceUtil.java 2010-05-12 08:53:34 UTC (rev 22030)
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.jsf.web.validation.jsf2.util;
-
-import java.util.zip.ZipEntry;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.core.JarEntryDirectory;
-import org.eclipse.jdt.internal.core.JarEntryFile;
-import org.eclipse.jdt.internal.core.JarEntryResource;
-import org.eclipse.jdt.internal.core.JarPackageFragmentRoot;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.jboss.tools.jsf.JSFModelPlugin;
-
-/**
- *
- * @author yzhishko
- *
- */
-
-@SuppressWarnings("restriction")
-public class JSF2ResourceUtil {
-
- public static final String JSF2_URI_PREFIX = "http://java.sun.com/jsf/composite"; //$NON-NLS-1$
-
- public static final String COMPONENT_RESOURCE_PATH_KEY = "component_resource_path_key"; //$NON-NLS-1$
-
- public static final int JAR_FILE_RESOURCE_TYPE = 1;
-
- public static final int JAR_DIRECTORY_RESOURCE_TYPE = JAR_FILE_RESOURCE_TYPE << 1;
-
- public static Object findCompositeComponentContainer(IProject project,
- IDOMElement jsf2Element) {
- ElementImpl elementImpl = (ElementImpl) jsf2Element;
- String nameSpaceURI = elementImpl.getNamespaceURI();
- if (nameSpaceURI == null || nameSpaceURI.indexOf(JSF2_URI_PREFIX) == -1) {
- return null;
- }
- String nodeName = jsf2Element.getLocalName();
- String relativeLocation = "/resources" + nameSpaceURI.replaceFirst( //$NON-NLS-1$
- JSF2ResourceUtil.JSF2_URI_PREFIX, ""); //$NON-NLS-1$
- IVirtualComponent component = ComponentCore.createComponent(project);
- if (component != null) {
- IVirtualFolder webRootFolder = component.getRootFolder().getFolder(
- new Path("/")); //$NON-NLS-1$
- IContainer folder = webRootFolder.getUnderlyingFolder();
- IPath path = folder.getFullPath().append(relativeLocation).append(
- "/" + nodeName + ".xhtml"); //$NON-NLS-1$ //$NON-NLS-2$
- IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
- if (file.isAccessible()) {
- return file;
- }
- }
- return searchInClassPath(project, "META-INF" + relativeLocation //$NON-NLS-1$
- + "/" + nodeName + ".xhtml", JAR_FILE_RESOURCE_TYPE); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- private static JarEntryResource searchInClassPath(IProject project,
- String classPathResource, int jarResourceType) {
- IJavaProject javaProject = JavaCore.create(project);
- try {
- for (IPackageFragmentRoot fragmentRoot : javaProject
- .getAllPackageFragmentRoots()) {
- if (fragmentRoot instanceof JarPackageFragmentRoot) {
- JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) fragmentRoot;
- ZipEntry zipEntry = jarPackageFragmentRoot.getJar()
- .getEntry(classPathResource);
- if (zipEntry != null) {
- if (jarResourceType == JAR_FILE_RESOURCE_TYPE) {
- JarEntryFile fileInJar = new JarEntryFile(
- classPathResource);
- fileInJar.setParent(jarPackageFragmentRoot);
- return fileInJar;
- }
- if (jarResourceType == JAR_DIRECTORY_RESOURCE_TYPE) {
- JarEntryDirectory directoryInJar = new JarEntryDirectory(
- classPathResource);
- directoryInJar.setParent(jarPackageFragmentRoot);
- return directoryInJar;
- }
- }
- }
- }
- } catch (JavaModelException e) {
- JSFModelPlugin.getPluginLog().logError(e);
- } catch (CoreException e) {
- JSFModelPlugin.getPluginLog().logError(e);
- }
- return null;
- }
-
- public static Object findResourcesFolderContainerByNameSpace(
- IProject project, String nameSpaceURI) {
- if (nameSpaceURI == null || nameSpaceURI.indexOf(JSF2_URI_PREFIX) == -1) {
- return null;
- }
- String relativeLocation = "/resources" + nameSpaceURI.replaceFirst( //$NON-NLS-1$
- JSF2ResourceUtil.JSF2_URI_PREFIX, ""); //$NON-NLS-1$
- IVirtualComponent component = ComponentCore.createComponent(project);
- if (component != null) {
- IVirtualFolder webRootFolder = component.getRootFolder().getFolder(
- new Path("/")); //$NON-NLS-1$
- IContainer folder = webRootFolder.getUnderlyingFolder();
- IPath path = folder.getFullPath().append(relativeLocation);
- IFolder resFolder = ResourcesPlugin.getWorkspace().getRoot()
- .getFolder(path);
- if (resFolder.isAccessible()) {
- return resFolder;
- }
- }
- return searchInClassPath(project,
- "META-INF" + relativeLocation, JAR_DIRECTORY_RESOURCE_TYPE); //$NON-NLS-1$
- }
-
- public static boolean isResourcesFolderExists(IProject project,
- String nameSpaceURI) {
- return findResourcesFolderContainerByNameSpace(project, nameSpaceURI) == null ? false
- : true;
- }
-
- public static IFolder createResourcesFolderByNameSpace(IProject project,
- String nameSpaceURI) throws CoreException {
- IFolder compositeCompResFolder = null;
- String relativeLocation = nameSpaceURI.replaceFirst(
- JSF2ResourceUtil.JSF2_URI_PREFIX, ""); //$NON-NLS-1$
- if (!project.exists()) {
- return null;
- }
- if (!project.isAccessible()) {
- try {
- project.open(new NullProgressMonitor());
- } catch (CoreException e) {
- JSFModelPlugin.getPluginLog().logError(e);
- return compositeCompResFolder;
- }
- }
- IVirtualComponent component = ComponentCore.createComponent(project);
- if (component != null) {
- IVirtualFolder webRootFolder = component.getRootFolder().getFolder(
- new Path("/")); //$NON-NLS-1$
- IContainer folder = webRootFolder.getUnderlyingFolder();
- IFolder webFolder = ResourcesPlugin.getWorkspace().getRoot()
- .getFolder(folder.getFullPath());
- IFolder resourcesFolder = webFolder.getFolder("resources"); //$NON-NLS-1$
- NullProgressMonitor monitor = new NullProgressMonitor();
- if (!resourcesFolder.exists()) {
- resourcesFolder.create(true, true, monitor);
- }
- String[] segments = new Path(relativeLocation).segments();
- compositeCompResFolder = resourcesFolder;
- for (int i = 0; i < segments.length; i++) {
- compositeCompResFolder = compositeCompResFolder
- .getFolder(segments[i]);
- if (!compositeCompResFolder.exists()) {
- compositeCompResFolder.create(true, true, monitor);
- }
- }
-
- }
- return compositeCompResFolder;
- }
-
- public static IFile createCompositeComponentFile(IProject project,
- IPath resourceRelativePath) throws CoreException {
- IFile compositeCompResFile = null;
- if (!project.exists()) {
- return null;
- }
- if (!project.isAccessible()) {
- try {
- project.open(new NullProgressMonitor());
- } catch (CoreException e) {
- JSFModelPlugin.getPluginLog().logError(e);
- return compositeCompResFile;
- }
- }
- IVirtualComponent component = ComponentCore.createComponent(project);
- if (component != null) {
- IVirtualFolder webRootFolder = component.getRootFolder().getFolder(
- new Path("/")); //$NON-NLS-1$
- IContainer folder = webRootFolder.getUnderlyingFolder();
- IFolder webFolder = ResourcesPlugin.getWorkspace().getRoot()
- .getFolder(folder.getFullPath());
- IFolder resourcesFolder = webFolder.getFolder("resources"); //$NON-NLS-1$
- NullProgressMonitor monitor = new NullProgressMonitor();
- if (!resourcesFolder.exists()) {
- resourcesFolder.create(true, true, monitor);
- }
- String[] segments = resourceRelativePath.segments();
- IFolder componentPathFolder = resourcesFolder;
- for (int i = 0; i < segments.length - 1; i++) {
- componentPathFolder = componentPathFolder
- .getFolder(segments[i]);
- if (!componentPathFolder.exists()) {
- componentPathFolder.create(true, true, monitor);
- }
- }
- compositeCompResFile = componentPathFolder
- .getFile(segments[segments.length - 1]);
- if (!compositeCompResFile.exists()) {
- compositeCompResFile.create(JSF2TemplateManager.getManager()
- .createStreamFromTemplate("composite.xhtml"), true, //$NON-NLS-1$
- monitor);
- } else {
- compositeCompResFile = JSF2ComponentModelManager.getManager()
- .revalidateCompositeComponentFile(compositeCompResFile);
- }
- }
- return compositeCompResFile;
- }
-
- public static IFile createCompositeComponentFile(IProject project,
- IPath resourceRelativePath, String[] attrNames)
- throws CoreException {
- IFile jsf2ResFile = createCompositeComponentFile(project,
- resourceRelativePath);
- if (jsf2ResFile == null) {
- return null;
- }
- if (attrNames == null || attrNames.length == 0) {
- return jsf2ResFile;
- }
- return JSF2ComponentModelManager.getManager()
- .updateJSF2CompositeComponentFile(jsf2ResFile, attrNames);
- }
-
-}
15 years, 11 months
JBoss Tools SVN: r22029 - branches/modular_build.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2010-05-11 16:51:21 -0400 (Tue, 11 May 2010)
New Revision: 22029
Modified:
branches/modular_build/genpom.xml
Log:
report when pom.xml files exist and are not overwritten by pomgen
Modified: branches/modular_build/genpom.xml
===================================================================
--- branches/modular_build/genpom.xml 2010-05-11 20:50:40 UTC (rev 22028)
+++ branches/modular_build/genpom.xml 2010-05-11 20:51:21 UTC (rev 22029)
@@ -535,7 +535,7 @@
</not>
<then>
<length property="show.pom.exists.warning.count" string="${show.pom.exists.warning}" />
- <echo level="warning">${show.pom.exists.warning.count} pom.xml file(s) already exist. To overwrite, use -Doverwrite.existing.pom.xml=true</echo>
+ <echo level="warning">${show.pom.exists.warning.count} ${COMPONENT} pom.xml file(s) already exist. To overwrite, use -Doverwrite.existing.pom.xml=true</echo>
</then>
</if>
</target>
15 years, 11 months
JBoss Tools SVN: r22028 - branches/modular_build.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2010-05-11 16:50:40 -0400 (Tue, 11 May 2010)
New Revision: 22028
Modified:
branches/modular_build/genpom.xml
Log:
report when pom.xml files exist and are not overwritten by pomgen
Modified: branches/modular_build/genpom.xml
===================================================================
--- branches/modular_build/genpom.xml 2010-05-11 20:30:21 UTC (rev 22027)
+++ branches/modular_build/genpom.xml 2010-05-11 20:50:40 UTC (rev 22028)
@@ -90,6 +90,8 @@
</classpath>
</taskdef>
+ <var name="show.pom.exists.warning" value="" />
+
<!-- = = = = = = = = = = = = = = = = =
macrodef: write out a pom.xml which aggregates subdirs
= = = = = = = = = = = = = = = = = -->
@@ -134,6 +136,17 @@
/>
<echo level="verbose"> Agg dir: ${activeDir}, artifactType: ${artifactType}, artifactId: ${artifactId}, artifactVersion: ${artifactVersion}, parentpom: @{parentpom}</echo>
<if>
+ <and>
+ <available file="@{dir}/pom.xml" type="file" />
+ <not>
+ <istrue value="${overwrite.existing.pom.xml}" />
+ </not>
+ </and>
+ <then>
+ <var name="show.pom.exists.warning" value="${show.pom.exists.warning}1" />
+ </then>
+ </if>
+ <if>
<or>
<not>
<available file="@{dir}/pom.xml" type="file" />
@@ -223,6 +236,17 @@
/>
<echo level="verbose"> Mod dir: ${activeDir}, artifactType: ${artifactType}, artifactId: ${artifactId}, artifactVersion: ${artifactVersion}, parentpom: @{parentpom}</echo>
<if>
+ <and>
+ <available file="@{dir}/pom.xml" type="file" />
+ <not>
+ <istrue value="${overwrite.existing.pom.xml}" />
+ </not>
+ </and>
+ <then>
+ <var name="show.pom.exists.warning" value="${show.pom.exists.warning}1" />
+ </then>
+ </if>
+ <if>
<or>
<not>
<available file="@{dir}/pom.xml" type="file" />
@@ -505,7 +529,15 @@
<length string="${modulecountstring}" property="modulecount" />
<length string="${aggregatorcountstring}" property="aggregatorcount" />
<echo level="info">${WORKINGDIR}/${COMPONENT} :: Modules: ${modulecount}, Aggregations: ${aggregatorcount}</echo>
-
+ <if>
+ <not>
+ <equals arg1="${show.pom.exists.warning}" arg2="" />
+ </not>
+ <then>
+ <length property="show.pom.exists.warning.count" string="${show.pom.exists.warning}" />
+ <echo level="warning">${show.pom.exists.warning.count} pom.xml file(s) already exist. To overwrite, use -Doverwrite.existing.pom.xml=true</echo>
+ </then>
+ </if>
</target>
<target name="getArtifactType">
15 years, 11 months
JBoss Tools SVN: r22027 - branches/modular_build/build.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2010-05-11 16:30:21 -0400 (Tue, 11 May 2010)
New Revision: 22027
Modified:
branches/modular_build/build/build.xml
Log:
exclude non-test result files from report
Modified: branches/modular_build/build/build.xml
===================================================================
--- branches/modular_build/build/build.xml 2010-05-11 20:19:13 UTC (rev 22026)
+++ branches/modular_build/build/build.xml 2010-05-11 20:30:21 UTC (rev 22027)
@@ -589,7 +589,7 @@
<echo>Run custom @{COMPONENT}/build.xml</echo>
<ant antfile="${WORKINGDIR}/(a){COMPONENT}/build.xml">
<property name="COMPONENT" value="@{COMPONENT}" />
- <property name="basedir" value="${WORKINGDIR}/@{COMPONENT}"/>
+ <property name="basedir" value="${WORKINGDIR}/@{COMPONENT}" />
</ant>
</then>
</if>
@@ -730,7 +730,7 @@
<for param="testresultfile" delimiter=",
">
<path>
- <fileset dir="${basedir}/surefire-reports/" includes="**/*.xml" />
+ <fileset dir="${basedir}/surefire-reports/" includes="**/TEST-*.xml" excludes="**/*pom.xml, **/build.xml"/>
</path>
<sequential>
<var name="testsuite.name" unset="true" />
@@ -784,9 +784,14 @@
/>
</then>
</if>
- <var name="test.results.all"
- value="${test.results.all}${testsuite.name} ran ${testsuite.tests} tests in ${testsuite.time}s${testsuite.skipped}${testsuite.errors}${testsuite.failures}${line.separator}"
- />
+ <if>
+ <isset property="testsuite.name" />
+ <then>
+ <var name="test.results.all"
+ value="${test.results.all}${testsuite.name} ran ${testsuite.tests} tests in ${testsuite.time}s${testsuite.skipped}${testsuite.errors}${testsuite.failures}${line.separator}"
+ />
+ </then>
+ </if>
<var name="testsuite.name" unset="true" />
<var name="testsuite.tests" unset="true" />
<var name="testsuite.time" unset="true" />
15 years, 11 months
JBoss Tools SVN: r22026 - branches/modular_build/build.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2010-05-11 16:19:13 -0400 (Tue, 11 May 2010)
New Revision: 22026
Modified:
branches/modular_build/build/build.xml
Log:
fix bootstrapping for drools build
Modified: branches/modular_build/build/build.xml
===================================================================
--- branches/modular_build/build/build.xml 2010-05-11 20:12:40 UTC (rev 22025)
+++ branches/modular_build/build/build.xml 2010-05-11 20:19:13 UTC (rev 22026)
@@ -589,6 +589,7 @@
<echo>Run custom @{COMPONENT}/build.xml</echo>
<ant antfile="${WORKINGDIR}/(a){COMPONENT}/build.xml">
<property name="COMPONENT" value="@{COMPONENT}" />
+ <property name="basedir" value="${WORKINGDIR}/@{COMPONENT}"/>
</ant>
</then>
</if>
15 years, 11 months
JBoss Tools SVN: r22025 - branches/modular_build/drools.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2010-05-11 16:12:40 -0400 (Tue, 11 May 2010)
New Revision: 22025
Modified:
branches/modular_build/drools/pom.xml
Log:
disable running ant because it happens too late
Modified: branches/modular_build/drools/pom.xml
===================================================================
--- branches/modular_build/drools/pom.xml 2010-05-11 19:36:49 UTC (rev 22024)
+++ branches/modular_build/drools/pom.xml 2010-05-11 20:12:40 UTC (rev 22025)
@@ -16,53 +16,19 @@
<module>plugins</module>
<module>features</module>
</modules>
-
- <build>
- <plugins>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.3</version>
- <executions>
- <execution>
- <id>compile</id>
- <phase>compile</phase>
- <configuration>
- <tasks>
- <ant antfile="build.xml" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- <version>1.4.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-commons-net</artifactId>
- <version>1.7.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-apache-regexp</artifactId>
- <version>1.7.1</version>
- </dependency>
- <dependency>
- <groupId>ant-contrib</groupId>
- <artifactId>ant-contrib</artifactId>
- <version>1.0b3</version>
- </dependency>
- </dependencies>
-
- </plugin>
- </plugins>
- </build>
+ <!-- TODO: figure out how to invoke this BEFORE the dep resolution for target
+ platform -->
+ <!-- <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId> <version>1.3</version> <executions>
+ <execution> <id>clean</id> <phase>clean</phase> <configuration> <tasks> <ant
+ antfile="build.xml" /> </tasks> </configuration> <goals> <goal>run</goal>
+ </goals> </execution> </executions> <dependencies> <dependency> <groupId>commons-net</groupId>
+ <artifactId>commons-net</artifactId> <version>1.4.1</version> </dependency>
+ <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant-commons-net</artifactId>
+ <version>1.7.1</version> </dependency> <dependency> <groupId>org.apache.ant</groupId>
+ <artifactId>ant-apache-regexp</artifactId> <version>1.7.1</version> </dependency>
+ <dependency> <groupId>ant-contrib</groupId> <artifactId>ant-contrib</artifactId>
+ <version>1.0b3</version> </dependency> </dependencies> </plugin> </plugins>
+ </build> -->
</project>
15 years, 11 months