You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/04/25 08:18:30 UTC
[31/46] FlexPMD Donation from Adobe Systems Inc
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/AbstractFlexFileTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/AbstractFlexFileTest.java b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/AbstractFlexFileTest.java
new file mode 100644
index 0000000..7987d77
--- /dev/null
+++ b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/AbstractFlexFileTest.java
@@ -0,0 +1,157 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.adobe.ac.pmd.files.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.FileNotFoundException;
+import java.net.URISyntaxException;
+import java.util.HashSet;
+import java.util.Set;
+
+import junit.framework.Assert;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.adobe.ac.pmd.FlexPmdTestBase;
+import com.adobe.ac.pmd.files.IAs3File;
+import com.adobe.ac.pmd.files.IMxmlFile;
+
+public class AbstractFlexFileTest extends FlexPmdTestBase
+{
+ private IAs3File as3;
+ private IMxmlFile mainMxml;
+ private IMxmlFile mxml;
+
+ @Before
+ public void init() throws FileNotFoundException,
+ URISyntaxException
+ {
+ as3 = ( IAs3File ) getTestFiles().get( "AbstractRowData.as" );
+ mainMxml = ( IMxmlFile ) getTestFiles().get( "Main.mxml" );
+ mxml = ( IMxmlFile ) getTestFiles().get( "com.adobe.ac.ncss.mxml.IterationsList.mxml" );
+ }
+
+ @Test
+ public void testContains()
+ {
+ assertTrue( as3.contains( "logger",
+ buildSetContaining( 0 ) ) );
+ assertFalse( as3.contains( "loggerr",
+ buildSetContaining( 0 ) ) );
+ assertFalse( as3.contains( "addEventListener",
+ buildSetContaining( 109,
+ 114 ) ) );
+ }
+
+ @Test
+ public void testEquals()
+ {
+ Assert.assertTrue( as3.equals( as3 ) );
+ Assert.assertFalse( mxml.equals( as3 ) );
+ Assert.assertFalse( as3.equals( mxml ) );
+ }
+
+ @Test
+ public void testFlexPMD152()
+ {
+ Assert.assertEquals( "com.something",
+ AbstractFlexFile.computePackageName( "C:/somePath/ProjectName/com/something/Test.mxml",
+ "C:/somePath/ProjectName",
+ "Test.mxml",
+ "/" ) );
+
+ Assert.assertEquals( "com.something",
+ AbstractFlexFile.computePackageName( "C:/somePath/ProjectName/com/something/Test.mxml",
+ "C:/somePath/ProjectName/",
+ "Test.mxml",
+ "/" ) );
+ }
+
+ @Test
+ public void testGetClassName()
+ {
+ assertEquals( "AbstractRowData.as",
+ as3.getClassName() );
+ assertEquals( "IterationsList.mxml",
+ mxml.getClassName() );
+ }
+
+ @Test
+ public void testGetFileName()
+ {
+ Assert.assertEquals( "AbstractRowData.as",
+ as3.getFilename() );
+ }
+
+ @Test
+ public void testGetFilePath()
+ {
+ assertNotNull( as3.getFilePath() );
+ assertNotNull( mxml.getFilePath() );
+ assertNotNull( mainMxml.getFilePath() );
+ }
+
+ @Test
+ public void testGetPackageName()
+ {
+ assertEquals( "",
+ as3.getPackageName() );
+ assertEquals( "com.adobe.ac.ncss.mxml",
+ mxml.getPackageName() );
+ }
+
+ @Test
+ public void testGetPath()
+ {
+ assertEquals( "AbstractRowData.as",
+ as3.getFullyQualifiedName() );
+ assertEquals( "com.adobe.ac.ncss.mxml.IterationsList.mxml",
+ mxml.getFullyQualifiedName() );
+ }
+
+ @Test
+ public void testIsMainApplication()
+ {
+ assertFalse( as3.isMainApplication() );
+ assertFalse( mxml.isMainApplication() );
+ assertTrue( mainMxml.isMainApplication() );
+ }
+
+ @Test
+ public void testIsMxml()
+ {
+ assertFalse( as3.isMxml() );
+ assertTrue( mxml.isMxml() );
+ }
+
+ private Set< Integer > buildSetContaining( final int... lines )
+ {
+
+ final HashSet< Integer > hashSet = new HashSet< Integer >();
+
+ for ( final int line : lines )
+ {
+ hashSet.add( line );
+ }
+ return hashSet;
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/As3FileTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/As3FileTest.java b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/As3FileTest.java
new file mode 100644
index 0000000..b15e413
--- /dev/null
+++ b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/As3FileTest.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.adobe.ac.pmd.files.impl;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.adobe.ac.pmd.FlexPmdTestBase;
+import com.adobe.ac.pmd.files.IAs3File;
+
+public class As3FileTest extends FlexPmdTestBase
+{
+ private IAs3File data;
+
+ @Before
+ public void setUp()
+ {
+ data = ( IAs3File ) getTestFiles().get( "AbstractRowData.as" );
+ }
+
+ @Test
+ public void testGetCommentClosingTag()
+ {
+ assertEquals( "*/",
+ data.getCommentClosingTag() );
+ }
+
+ @Test
+ public void testGetCommentOpeningTag()
+ {
+ assertEquals( "/*",
+ data.getCommentOpeningTag() );
+ }
+
+ @Test
+ public void testGetLineAt()
+ {
+ assertEquals( " public const logger : ILogger;",
+ data.getLineAt( 45 ) );
+ }
+
+ @Test
+ public void testGetSingleLineComment()
+ {
+ assertEquals( "//",
+ data.getSingleLineComment() );
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/FileUtilsTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/FileUtilsTest.java b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/FileUtilsTest.java
new file mode 100644
index 0000000..b507a86
--- /dev/null
+++ b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/FileUtilsTest.java
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.adobe.ac.pmd.files.impl;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.Assert;
+import net.sourceforge.pmd.PMDException;
+
+import org.junit.Test;
+
+import com.adobe.ac.pmd.FlexPmdTestBase;
+import com.adobe.ac.pmd.files.IFlexFile;
+
+public class FileUtilsTest extends FlexPmdTestBase
+{
+ @Test
+ public void testComputeFilesList() throws PMDException
+ {
+ Map< String, IFlexFile > files;
+ files = FileUtils.computeFilesList( getTestDirectory(),
+ null,
+ "",
+ null );
+
+ Assert.assertEquals( 105,
+ files.size() );
+
+ final List< String > excludePatterns = new ArrayList< String >();
+ excludePatterns.add( "bug" );
+ files = FileUtils.computeFilesList( getTestDirectory(),
+ null,
+ "",
+ excludePatterns );
+
+ Assert.assertEquals( 88,
+ files.size() );
+ }
+
+ @Test
+ public void testComputeFilesListWithEmptySourceFolder() throws PMDException
+ {
+ final Map< String, IFlexFile > files = FileUtils.computeFilesList( new File( getTestDirectory().getAbsolutePath()
+ + "/" + "empty/emptyFolder" ),
+ null,
+ "",
+ null );
+
+ Assert.assertEquals( 1,
+ files.size() );
+ }
+
+ @Test
+ public void testComputeFilesListWithoutSource()
+ {
+ try
+ {
+ FileUtils.computeFilesList( null,
+ null,
+ "",
+ null );
+ Assert.fail();
+ }
+ catch ( final PMDException e )
+ {
+ Assert.assertEquals( "sourceDirectory is not specified",
+ e.getMessage() );
+ }
+ }
+
+ @Test
+ public void testComputeFilesListWithSourceFile() throws PMDException
+ {
+ final Map< String, IFlexFile > files = FileUtils.computeFilesList( new File( getTestFiles().get( "AbstractRowData.as" )
+ .getFilePath() ),
+ null,
+ "",
+ null );
+
+ Assert.assertEquals( 1,
+ files.size() );
+ }
+
+ @Test
+ public void testComputeFilesListWithSourceList() throws PMDException
+ {
+ final List< File > sourceList = new ArrayList< File >();
+
+ sourceList.add( getTestDirectory() );
+ final Map< String, IFlexFile > files = FileUtils.computeFilesList( null,
+ sourceList,
+ "",
+ null );
+
+ Assert.assertEquals( 105,
+ files.size() );
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/FlexFileFactoryTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/FlexFileFactoryTest.java b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/FlexFileFactoryTest.java
new file mode 100644
index 0000000..842f3e6
--- /dev/null
+++ b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/FlexFileFactoryTest.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.adobe.ac.pmd.files.impl;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+
+import org.junit.Test;
+
+import com.adobe.ac.pmd.FlexPmdTestBase;
+import com.adobe.ac.pmd.files.IAs3File;
+import com.adobe.ac.pmd.files.IFlexFile;
+import com.adobe.ac.pmd.files.IMxmlFile;
+
+public class FlexFileFactoryTest extends FlexPmdTestBase
+{
+ @Test
+ public void testCreate()
+ {
+ assertTrue( "",
+ create( new File( getTestFiles().get( "AbstractRowData.as" ).getFilePath() ),
+ new File( "" ) ) instanceof IAs3File );
+ assertTrue( "",
+ create( new File( getTestFiles().get( "Main.mxml" ).getFilePath() ),
+ new File( "" ) ) instanceof IMxmlFile );
+ assertTrue( "",
+ create( new File( getTestFiles().get( "com.adobe.ac.ncss.mxml.IterationsList.mxml" )
+ .getFilePath() ),
+ new File( "" ) ) instanceof IMxmlFile );
+ }
+
+ private IFlexFile create( final File sourceFile,
+ final File sourceDirectory )
+ {
+ IFlexFile file;
+
+ if ( sourceFile.getName().endsWith( ".as" ) )
+ {
+ file = new As3File( sourceFile, sourceDirectory );
+ }
+ else
+ {
+ file = new MxmlFile( sourceFile, sourceDirectory );
+ }
+
+ return file;
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/MxmlFileTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/MxmlFileTest.java b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/MxmlFileTest.java
new file mode 100644
index 0000000..e51bc29
--- /dev/null
+++ b/FlexPMD/flex-pmd-files/src/test/java/com/adobe/ac/pmd/files/impl/MxmlFileTest.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.adobe.ac.pmd.files.impl;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.adobe.ac.pmd.FlexPmdTestBase;
+import com.adobe.ac.pmd.files.IMxmlFile;
+
+public class MxmlFileTest extends FlexPmdTestBase
+{
+ private IMxmlFile data;
+
+ @Before
+ public void setUp()
+ {
+ data = ( IMxmlFile ) getTestFiles().get( "Main.mxml" );
+ }
+
+ @Test
+ public void testGetActualScriptBlock()
+ {
+ assertEquals( Integer.valueOf( 4 ),
+ Integer.valueOf( data.getActualScriptBlock().length ) );
+ }
+
+ @Test
+ public void testGetSingleLineComment()
+ {
+ assertEquals( "<!--",
+ data.getSingleLineComment() );
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-files/src/test/java/net/sourceforge/pmd/PMDExceptionTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-files/src/test/java/net/sourceforge/pmd/PMDExceptionTest.java b/FlexPMD/flex-pmd-files/src/test/java/net/sourceforge/pmd/PMDExceptionTest.java
new file mode 100644
index 0000000..550d982
--- /dev/null
+++ b/FlexPMD/flex-pmd-files/src/test/java/net/sourceforge/pmd/PMDExceptionTest.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.sourceforge.pmd;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+public class PMDExceptionTest
+{
+ @SuppressWarnings("deprecation")
+ @Test
+ public void testGetReason()
+ {
+ final Exception reason = new Exception();
+ final PMDException exception = new PMDException( "message", reason );
+
+ assertEquals( reason,
+ exception.getReason() );
+ }
+
+ @Test
+ public void testPMDExceptionString()
+ {
+ assertEquals( "message",
+ new PMDException( "message" ).getMessage() );
+ }
+
+ @Test
+ public void testPMDExceptionStringException()
+ {
+ final PMDException exception = new PMDException( "message", new Exception() );
+
+ assertEquals( "message",
+ exception.getMessage() );
+ }
+
+ @Test
+ public void testSetSeverity()
+ {
+ final PMDException exception = new PMDException( "message" );
+
+ exception.setSeverity( 1 );
+ assertEquals( Integer.valueOf( 1 ),
+ Integer.valueOf( exception.getSeverity() ) );
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/.checkstyle
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/.checkstyle b/FlexPMD/flex-pmd-flex-lib/.checkstyle
new file mode 100644
index 0000000..a34f4bb
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/.checkstyle
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="all" enabled="true" check-config-name="Ac" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+</fileset-config>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/.externalToolBuilders/org.maven.ide.eclipse.maven2Builder.launch
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/.externalToolBuilders/org.maven.ide.eclipse.maven2Builder.launch b/FlexPMD/flex-pmd-flex-lib/.externalToolBuilders/org.maven.ide.eclipse.maven2Builder.launch
new file mode 100644
index 0000000..850ec2f
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/.externalToolBuilders/org.maven.ide.eclipse.maven2Builder.launch
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<launchConfiguration type="org.maven.ide.eclipse.Maven2BuilderConfigurationType">
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="org.maven.ide.eclipse.maven2Builder"/>
+<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+</launchConfiguration>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/pom.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/pom.xml b/FlexPMD/flex-pmd-flex-lib/pom.xml
new file mode 100644
index 0000000..618220b
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/pom.xml
@@ -0,0 +1,207 @@
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.adobe.ac</groupId>
+ <artifactId>flex-pmd-flex-lib</artifactId>
+ <packaging>swc</packaging>
+ <name>Adobe Flex PMD Flex lib</name>
+ <description>Adobe Flex PMD Flex library containing shared classes</description>
+
+ <parent>
+ <artifactId>flex-pmd-flex-parent</artifactId>
+ <groupId>com.adobe.ac</groupId>
+ <version>1.3-SNAPSHOT</version>
+ <relativePath>../flex-pmd-flex-parent/pom.xml</relativePath>
+ </parent>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>flex-pmd-ruleset</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.adobe.cairngorm</groupId>
+ <artifactId>event-source</artifactId>
+ <version>${event-source.version}</version>
+ <type>swc</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.adobe.cairngorm</groupId>
+ <artifactId>cairngorm</artifactId>
+ <version>${cairngorm.version}</version>
+ <type>swc</type>
+ </dependency>
+
+ <!-- flex sdk dependencies -->
+
+ <dependency>
+ <groupId>com.adobe.flex.framework</groupId>
+ <artifactId>flex-framework</artifactId>
+ <version>${flex.version}</version>
+ <type>pom</type>
+ <exclusions>
+ <exclusion>
+ <groupId>com.adobe.flex.framework</groupId>
+ <artifactId>playerglobal</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>com.adobe.flex.framework</groupId>
+ <artifactId>playerglobal</artifactId>
+ <version>${flash-player.version}-${flex.version}</version>
+ <type>swc</type>
+ </dependency>
+
+ <dependency>
+ <groupId>com.adobe.flex.framework</groupId>
+ <artifactId>datavisualization</artifactId>
+ <version>${flex.version}</version>
+ <type>swc</type>
+ </dependency>
+
+ <dependency>
+ <groupId>com.adobe.flex.framework</groupId>
+ <artifactId>datavisualization</artifactId>
+ <version>${flex.version}</version>
+ <type>rb.swc</type>
+ <classifier>en_US</classifier>
+ </dependency>
+
+ <!-- flexmojos Unit testing support -->
+ <dependency>
+ <groupId>org.sonatype.flexmojos</groupId>
+ <artifactId>flexmojos-unittest-support</artifactId>
+ <version>${flex-mojos-plugin.version}</version>
+ <type>swc</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.adobe.flex.framework</groupId>
+ <artifactId>playerglobal</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <sourceDirectory>src/main/flex</sourceDirectory>
+ <testSourceDirectory>src/test/flex</testSourceDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <directory>src/test/resources</directory>
+ </testResource>
+ </testResources>
+
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>${ant-run-plugin.version}</version>
+ <executions>
+ <execution>
+ <id>copy-version-as</id>
+ <phase>process-resources</phase>
+ <configuration>
+ <tasks>
+ <tstamp>
+ <format property="last.updated.date" pattern="yyyy-MM-dd" />
+ <format property="last.updated.time" pattern="HH:mm:ss" />
+ </tstamp>
+ <echo message="Generating Version.as..." />
+ <echo file="${basedir}/src/main/flex/Version.as" append="false" message="package" />
+ <echo file="${basedir}/src/main/flex/Version.as" append="true" message="{" />
+ <echo file="${basedir}/src/main/flex/Version.as" append="true" message=" public class Version" />
+ <echo file="${basedir}/src/main/flex/Version.as" append="true" message=" {" />
+ <echo file="${basedir}/src/main/flex/Version.as" append="true" message=" public static const BUILD_NUMBER : String = '${project.version}';" />
+ <echo file="${basedir}/src/main/flex/Version.as" append="true" message=" public static const BUILD_TIME : String = '${last.updated.time}';" />
+ <echo file="${basedir}/src/main/flex/Version.as" append="true" message=" public static const BUILD_DATE : String = '${last.updated.date}';" />
+ <echo file="${basedir}/src/main/flex/Version.as" append="true" message=" }" />
+ <echo file="${basedir}/src/main/flex/Version.as" append="true" message="}" />
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.sonatype.flexmojos</groupId>
+ <artifactId>flexmojos-maven-plugin</artifactId>
+ <version>${flex-mojos-plugin.version}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <targetPlayer>${flash-player.version}.0.0</targetPlayer>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <repositories>
+ <repository>
+ <id>flexmojos-repository</id>
+ <url>http://repository.sonatype.org/content/groups/public/</url>
+ </repository>
+ </repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>flexmojos-repository</id>
+ <url>http://repository.sonatype.org/content/groups/public/</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <configuration>
+ <reportsDirectory>surefire-reports</reportsDirectory>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>flex-pmd-maven-plugin</artifactId>
+ <version>${project.parent.version}</version>
+ <configuration>
+ <failOnError>true</failOnError>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </reporting>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/model/IDomainModel.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/model/IDomainModel.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/model/IDomainModel.as
new file mode 100644
index 0000000..beb6097
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/model/IDomainModel.as
@@ -0,0 +1,26 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.model
+{
+
+ public interface IDomainModel
+ {
+ // Marker interface for Domain Model
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/model/IPresentationModel.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/model/IPresentationModel.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/model/IPresentationModel.as
new file mode 100644
index 0000000..f0ee7c2
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/model/IPresentationModel.as
@@ -0,0 +1,26 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.model
+{
+
+ public interface IPresentationModel
+ {
+ // Marker interface for Presentation Model
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/api/IGetRulesetContent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/api/IGetRulesetContent.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/api/IGetRulesetContent.as
new file mode 100644
index 0000000..1e2d5d1
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/api/IGetRulesetContent.as
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.pmd.api
+{
+ import com.adobe.ac.pmd.model.Ruleset;
+
+ public interface IGetRulesetContent
+ {
+ function getRulesetContent( ref : String ) : void;
+ function onReceiveRulesetContent( ruleset : Ruleset ) : void;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/control/events/GetRulesetContentEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/control/events/GetRulesetContentEvent.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/control/events/GetRulesetContentEvent.as
new file mode 100644
index 0000000..e9f20c1
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/control/events/GetRulesetContentEvent.as
@@ -0,0 +1,56 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.pmd.control.events
+{
+ import com.adobe.ac.pmd.api.IGetRulesetContent;
+ import com.adobe.cairngorm.control.CairngormEvent;
+
+ import flash.events.Event;
+
+ public class GetRulesetContentEvent extends CairngormEvent
+ {
+ public static const EVENT_NAME : String = "ruleset.getContent";
+
+ private var _invoker : IGetRulesetContent;
+ private var _ref : String;
+
+ public function GetRulesetContentEvent( invoker : IGetRulesetContent, ref : String )
+ {
+ super( EVENT_NAME );
+
+ _ref = ref;
+ _invoker = invoker;
+ }
+
+ public function get invoker() : IGetRulesetContent
+ {
+ return _invoker;
+ }
+
+ public function get ref() : String
+ {
+ return _ref;
+ }
+
+ override public function clone() : Event
+ {
+ return new GetRulesetContentEvent( _invoker, _ref );
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Property.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Property.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Property.as
new file mode 100644
index 0000000..9e2f4d3
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Property.as
@@ -0,0 +1,35 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.pmd.model
+{
+ import com.adobe.ac.model.IDomainModel;
+
+ import mx.collections.ArrayCollection;
+ import mx.collections.ListCollectionView;
+
+ public class Property implements IDomainModel
+ {
+ public var name : String;
+ public var value : String;
+
+ public function Property()
+ {
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/RootRuleset.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/RootRuleset.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/RootRuleset.as
new file mode 100644
index 0000000..cb41e7a
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/RootRuleset.as
@@ -0,0 +1,103 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.pmd.model
+{
+ import com.adobe.ac.model.IDomainModel;
+
+ import flash.events.Event;
+ import flash.events.EventDispatcher;
+
+ import mx.collections.ArrayCollection;
+ import mx.collections.ListCollectionView;
+ import mx.events.CollectionEvent;
+
+ public class RootRuleset extends EventDispatcher implements IDomainModel
+ {
+ public static const CUSTOM_RULESET_NAME : String = "Parameterized rules";
+ private static const RULES_CHANGED : String = "rulesChange";
+ public var name : String;
+ public var description : String;
+ [Bindable]
+ public var rulesets : ListCollectionView = new ArrayCollection();
+
+ private var _customRuleset : Ruleset = null;
+
+ public function RootRuleset()
+ {
+ rulesets.addEventListener(CollectionEvent.COLLECTION_CHANGE, handleRulesetChange);
+ }
+
+
+ public function get customRuleset():Ruleset
+ {
+ return _customRuleset;
+ }
+
+ public function addRegExpBasedRule( rule : Rule ) : void
+ {
+ if ( ! customRuleset )
+ {
+ _customRuleset = new Ruleset();
+ _customRuleset.name = CUSTOM_RULESET_NAME;
+ rulesets.addItem( _customRuleset );
+ }
+
+ rule.ruleset = _customRuleset;
+ _customRuleset.rules.addItem( rule );
+ rulesChanged();
+ }
+
+ private function handleRulesetChange( event : CollectionEvent ) : void
+ {
+ for each ( var ruleset : Ruleset in rulesets )
+ {
+ ruleset.rules.addEventListener(CollectionEvent.COLLECTION_CHANGE, handleRulesChange);
+ }
+ }
+
+ private function handleRulesChange( event : CollectionEvent ) : void
+ {
+ rulesChanged();
+ }
+
+ public function rulesChanged() : void
+ {
+ dispatchEvent( new Event( RULES_CHANGED ) );
+ }
+
+ [Bindable("rulesChange")]
+ public function get rulesNb() : Number
+ {
+ var result : Number = 0;
+
+ for each ( var ruleset : Ruleset in rulesets )
+ {
+ for each ( var rule : Rule in ruleset.rules )
+ {
+ if ( !rule.deleted )
+ {
+ result++;
+ }
+ }
+ }
+
+ return result;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Rule.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Rule.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Rule.as
new file mode 100644
index 0000000..9fe5509
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Rule.as
@@ -0,0 +1,92 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.pmd.model
+{
+ import com.adobe.ac.model.IDomainModel;
+
+ import flash.events.Event;
+ import flash.events.EventDispatcher;
+
+ import mx.collections.ArrayCollection;
+ import mx.collections.ListCollectionView;
+
+ public class Rule extends EventDispatcher implements IDomainModel // NO PMD BindableClass TooManyFields
+ {
+ public static const NAME_CHANGE : String = "nameChange";
+ public static const DELETED_CHANGE : String = "deleteChange";
+
+ public var since : String;
+ [Bindable]
+ public var message : String;
+ [Bindable]
+ public var examples : String;
+ [Bindable]
+ public var description : String;
+ [Bindable]
+ public var properties : ListCollectionView = new ArrayCollection();
+ [Bindable]
+ public var priority : ViolationPriority;
+ [Bindable]
+ public var ruleset : Ruleset;
+
+ private var _deleted : Boolean = false;
+ private var _name : String;
+
+ public function Rule()
+ {
+ ruleset = new Ruleset();
+ }
+
+ [Bindable( "nameChange" )]
+ public function get name() : String
+ {
+ return _name;
+ }
+
+ public function set name( value : String ) : void
+ {
+ _name = value;
+ dispatchEvent( new Event( NAME_CHANGE ) );
+ }
+
+ [Bindable( "nameChange" )]
+ public function get shortName() : String
+ {
+ return name.substr( name.lastIndexOf( "." ) + 1 );
+ }
+
+ [Bindable( "deleteChange" )]
+ public function get deleted() : Boolean
+ {
+ return _deleted;
+ }
+
+ public function remove() : void
+ {
+ _deleted = true;
+ dispatchEvent( new Event( DELETED_CHANGE ) );
+ }
+
+ public function unDelete() : void
+ {
+ _deleted = false;
+ dispatchEvent( new Event( DELETED_CHANGE ) );
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Ruleset.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Ruleset.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Ruleset.as
new file mode 100644
index 0000000..45afcfa
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/Ruleset.as
@@ -0,0 +1,63 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.pmd.model
+{
+ import com.adobe.ac.model.IDomainModel;
+ import com.adobe.ac.pmd.api.IGetRulesetContent;
+ import com.adobe.ac.pmd.control.events.GetRulesetContentEvent;
+ import com.adobe.ac.pmd.model.events.RulesetReceivedEvent;
+
+ import flash.events.EventDispatcher;
+
+ import mx.collections.ArrayCollection;
+ import mx.collections.ListCollectionView;
+ import mx.events.CollectionEvent;
+
+ [Event( name="rulesetReceived",type="com.adobe.ac.pmd.model.events.RulesetReceivedEvent" )]
+ public class Ruleset extends EventDispatcher implements IDomainModel, IGetRulesetContent // NO PMD BindableClass
+ {
+ private static const RULES_CHANGED : String = "rulesChange";
+ [Bindable]
+ public var isRef : Boolean;
+ [Bindable]
+ public var name : String;
+ [Bindable]
+ public var description : String;
+ [Bindable]
+ public var rules : ListCollectionView = new ArrayCollection();
+
+ public function Ruleset()
+ {
+ }
+
+ public function getRulesetContent( ref : String ) : void
+ {
+ new GetRulesetContentEvent( this, ref ).dispatch();
+ }
+
+ public function onReceiveRulesetContent( ruleset : Ruleset ) : void
+ {
+ name = ruleset.name;
+ rules = ruleset.rules;
+ isRef = ruleset.isRef;
+ description = ruleset.description;
+ dispatchEvent( new RulesetReceivedEvent( this ) );
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/ViolationPriority.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/ViolationPriority.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/ViolationPriority.as
new file mode 100644
index 0000000..61fa224
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/ViolationPriority.as
@@ -0,0 +1,82 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.pmd.model
+{
+ import flash.events.Event;
+ import flash.events.EventDispatcher;
+
+ public class ViolationPriority extends EventDispatcher
+ {
+ public static const ERROR : ViolationPriority = new ViolationPriority( 1, "Error" );
+ public static const WARNING : ViolationPriority = new ViolationPriority( 3, "Warning" );
+ public static const INFO : ViolationPriority = new ViolationPriority( 5, "Info" );
+
+ private var _level : int;
+ private var _name : String;
+
+ public function ViolationPriority( level : int, name : String )
+ {
+ _level = level;
+ _name = name;
+ }
+
+ public static function create( level : int ) : ViolationPriority
+ {
+ var result : ViolationPriority = null;
+
+ switch( level )
+ {
+ case 1:
+ result = ERROR;
+ break;
+ case 3:
+ result = WARNING;
+ break;
+ case 5:
+ result = INFO;
+ break;
+ default:
+ throw new Error( "Unknown violation level (" + level + ")" );
+ }
+ return result;
+ }
+
+ public static function get values() : Array
+ {
+ return[ ERROR, WARNING, INFO ];
+ }
+
+ [Bindable( "unused" )]
+ public function get level() : int
+ {
+ return _level;
+ }
+
+ [Bindable( "initialized" )]
+ public function get name() : String
+ {
+ return _name;
+ }
+
+ override public function toString() : String
+ {
+ return _name;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/events/RulesetReceivedEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/events/RulesetReceivedEvent.as b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/events/RulesetReceivedEvent.as
new file mode 100644
index 0000000..aeff332
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/model/events/RulesetReceivedEvent.as
@@ -0,0 +1,48 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.pmd.model.events
+{
+ import com.adobe.ac.pmd.model.Ruleset;
+
+ import flash.events.Event;
+
+ public class RulesetReceivedEvent extends Event
+ {
+ public static const EVENT_NAME : String = "rulesetReceived";
+
+ private var _ruleset : Ruleset;
+
+ public function RulesetReceivedEvent( ruleset : Ruleset )
+ {
+ super( EVENT_NAME );
+
+ _ruleset = ruleset;
+ }
+
+ public function get ruleset() : Ruleset
+ {
+ return _ruleset;
+ }
+
+ override public function clone() : Event
+ {
+ return new RulesetReceivedEvent( ruleset );
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/view/Title.mxml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/view/Title.mxml b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/view/Title.mxml
new file mode 100644
index 0000000..caea7ad
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/main/flex/com/adobe/ac/pmd/view/Title.mxml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml"
+ styleName="h1"
+ >
+
+ <mx:filters>
+
+ <flash.filters:DropShadowFilter xmlns:flash.filters="flash.filters.*"
+ color="0xffffff"
+ angle="90"
+ blurX="0"
+ blurY="0"
+ distance="1"
+ />
+
+ </mx:filters>
+
+</mx:Label>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/cancelledIcon.png
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/cancelledIcon.png b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/cancelledIcon.png
new file mode 100644
index 0000000..9bca099
Binary files /dev/null and b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/cancelledIcon.png differ
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/export.png
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/export.png b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/export.png
new file mode 100644
index 0000000..fd4bfcd
Binary files /dev/null and b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/export.png differ
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/icon_tool_trash.png
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/icon_tool_trash.png b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/icon_tool_trash.png
new file mode 100644
index 0000000..b4b470d
Binary files /dev/null and b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/icon_tool_trash.png differ
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/icon_tool_trash2.png
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/icon_tool_trash2.png b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/icon_tool_trash2.png
new file mode 100644
index 0000000..282a037
Binary files /dev/null and b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/icon_tool_trash2.png differ
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/todoLogo.png
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/todoLogo.png b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/todoLogo.png
new file mode 100644
index 0000000..a314b8d
Binary files /dev/null and b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/todoLogo.png differ
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/todoLogo_big.png
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/todoLogo_big.png b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/todoLogo_big.png
new file mode 100644
index 0000000..bb89f68
Binary files /dev/null and b/FlexPMD/flex-pmd-flex-lib/src/main/resources/assets/todoLogo_big.png differ
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/test/flex/AllTests.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/test/flex/AllTests.as b/FlexPMD/flex-pmd-flex-lib/src/test/flex/AllTests.as
new file mode 100644
index 0000000..681ca74
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/test/flex/AllTests.as
@@ -0,0 +1,36 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+ import com.adobe.ac.pmd.model.RuleTest;
+ import com.adobe.ac.pmd.model.RulesetTest;
+
+ import flexunit.framework.TestSuite;
+
+ public class AllTests extends TestSuite
+ {
+ public function AllTests()
+ {
+ super();
+
+ addTestSuite( RulesetTest );
+ addTestSuite( RuleTest );
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/test/flex/com/adobe/ac/pmd/model/RuleTest.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/test/flex/com/adobe/ac/pmd/model/RuleTest.as b/FlexPMD/flex-pmd-flex-lib/src/test/flex/com/adobe/ac/pmd/model/RuleTest.as
new file mode 100644
index 0000000..d4d4a6b
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/test/flex/com/adobe/ac/pmd/model/RuleTest.as
@@ -0,0 +1,61 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+ package com.adobe.ac.pmd.model
+{
+ import flexunit.framework.EventfulTestCase;
+
+ public class RuleTest extends EventfulTestCase
+ {
+ private var rule : Rule;
+
+ public function RuleTest()
+ {
+ }
+
+ override public function setUp():void
+ {
+ rule = new Rule();
+ }
+
+ public function testName() : void
+ {
+ listenForEvent( rule, Rule.NAME_CHANGE );
+
+ rule.name = "com.adobe.ac.MyRule";
+
+ assertEvents();
+ assertEquals( "MyRule", rule.shortName );
+
+ rule.name = "MyRule";
+ assertEquals( "MyRule", rule.shortName );
+ }
+
+ public function testRemove() : void
+ {
+ var parentRuleset : Ruleset = new Ruleset();
+
+ rule.ruleset = parentRuleset;
+ parentRuleset.rules.addItem( rule );
+ rule.remove();
+
+ assertEquals( 1, parentRuleset.rules.length );
+ assertTrue( Rule( parentRuleset.rules.getItemAt( 0 ) ).deleted );
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-lib/src/test/flex/com/adobe/ac/pmd/model/RulesetTest.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-lib/src/test/flex/com/adobe/ac/pmd/model/RulesetTest.as b/FlexPMD/flex-pmd-flex-lib/src/test/flex/com/adobe/ac/pmd/model/RulesetTest.as
new file mode 100644
index 0000000..f70d229
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-lib/src/test/flex/com/adobe/ac/pmd/model/RulesetTest.as
@@ -0,0 +1,72 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+ package com.adobe.ac.pmd.model
+{
+ import com.adobe.ac.pmd.control.events.GetRulesetContentEvent;
+ import com.adobe.ac.pmd.model.events.RulesetReceivedEvent;
+
+ import flexunit.framework.CairngormEventSource;
+ import flexunit.framework.EventfulTestCase;
+
+ import mx.collections.ArrayCollection;
+
+ public class RulesetTest extends EventfulTestCase
+ {
+ private var model : Ruleset;
+
+ public function RulesetTest()
+ {
+ }
+
+ override public function setUp():void
+ {
+ model = new Ruleset();
+ }
+
+ public function testGetRulesetContent() : void
+ {
+ listenForEvent( CairngormEventSource.instance, GetRulesetContentEvent.EVENT_NAME );
+
+ model.getRulesetContent( "ref" );
+
+ assertEvents();
+ assertEquals( model, GetRulesetContentEvent( lastDispatchedExpectedEvent ).invoker );
+ assertEquals( "ref", GetRulesetContentEvent( lastDispatchedExpectedEvent ).ref );
+ }
+
+ public function testOnReceiveRulesetContent() : void
+ {
+ var receivedRuleset : Ruleset = new Ruleset();
+
+ listenForEvent( model, RulesetReceivedEvent.EVENT_NAME );
+
+ receivedRuleset.name = "name";
+ receivedRuleset.description = "description";
+ receivedRuleset.rules = new ArrayCollection();
+
+ model.onReceiveRulesetContent( receivedRuleset );
+
+ assertEvents();
+ assertEquals( model, RulesetReceivedEvent( lastDispatchedExpectedEvent ).ruleset );
+ assertEquals( receivedRuleset.name, model.name );
+ assertEquals( receivedRuleset.description, model.description );
+ assertEquals( receivedRuleset.rules, model.rules );
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-flex-parent/pom.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex-parent/pom.xml b/FlexPMD/flex-pmd-flex-parent/pom.xml
new file mode 100644
index 0000000..6ff8aca
--- /dev/null
+++ b/FlexPMD/flex-pmd-flex-parent/pom.xml
@@ -0,0 +1,125 @@
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.adobe.ac</groupId>
+ <artifactId>flex-pmd-flex-parent</artifactId>
+ <packaging>pom</packaging>
+ <name>Adobe Flex PMD Flex Parent</name>
+
+ <parent>
+ <groupId>com.adobe.ac</groupId>
+ <artifactId>flex-pmd</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <relativePath>../flex-pmd-parent/pom.xml</relativePath>
+ </parent>
+
+ <properties>
+
+ <flex.version>3.2.0.3958</flex.version>
+ <flash-player.version>10</flash-player.version>
+ <flexunit.version>0.9</flexunit.version>
+ <event-source.version>1.1</event-source.version>
+ <flexunit-optional.version>0.85</flexunit-optional.version>
+ <event-source.version>1.1</event-source.version>
+ <cairngorm.version>2.2.1</cairngorm.version>
+ <flexunit-theme.version>1.0</flexunit-theme.version>
+
+ </properties>
+
+ <modules>
+ <module>../flex-pmd-ruleset-creator</module>
+ <module>../flex-pmd-violations-viewer</module>
+ <module>../flex-pmd-flex-lib</module>
+ <module>../flexunit-theme</module>
+ </modules>
+
+ <build>
+ <sourceDirectory>.</sourceDirectory>
+ <plugins>
+
+ <plugin>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>flex-pmd-maven-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>flex-pmd-cpd-maven-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>flex-pmd-metrics-maven-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <version>2.4.3</version>
+ <configuration>
+ <reportsDirectory>surefire-reports</reportsDirectory>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>flex-pmd-maven-plugin</artifactId>
+ <version>${project.parent.version}</version>
+ <configuration>
+ <failOnError>true</failOnError>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </reporting>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-hybrid-parent/pom.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-hybrid-parent/pom.xml b/FlexPMD/flex-pmd-hybrid-parent/pom.xml
new file mode 100644
index 0000000..d41df0d
--- /dev/null
+++ b/FlexPMD/flex-pmd-hybrid-parent/pom.xml
@@ -0,0 +1,279 @@
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.adobe.ac</groupId>
+ <artifactId>flex-pmd-hybrid-parent</artifactId>
+ <packaging>pom</packaging>
+ <name>Adobe Flex PMD Flex/Java Parent</name>
+
+ <parent>
+ <groupId>com.adobe.ac</groupId>
+ <artifactId>flex-pmd</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <relativePath>../flex-pmd-parent/pom.xml</relativePath>
+ </parent>
+
+ <modules>
+ <module>../flex-pmd-automator-workflow</module>
+ <module>../flex-pmd-bundles</module>
+ </modules>
+
+ <build>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>${dependency.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>${assembly.version}</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>${release-plugin.version}</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>${compileSource}</source>
+ <target>${compileSource}</target>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <version>${cobertura.version}</version>
+ <configuration>
+ <format>xml</format>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>${findbugs.version}</version>
+ <configuration>
+ <xmlOutput>true</xmlOutput>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${checkstyle.version}</version>
+ <configuration>
+ <configLocation>checkstyle.xml</configLocation>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>com.google.code.maven-license-plugin</groupId>
+ <artifactId>maven-license-plugin</artifactId>
+ <version>${license.version}</version>
+ <configuration>
+ <header>../flex-pmd-parent/src/etc/header.txt</header>
+ <includes>
+ <include>**/src/**</include>
+ <include>**/test/**</include>
+ </includes>
+ <excludes>
+ <exclude>**/Simple.as</exclude>
+ <exclude>**/Empty.*</exclude>
+ <exclude>**/Version.as</exclude>
+ <exclude>**/FlexPMD60.as</exclude>
+ <exclude>**/header.txt</exclude>
+ <exclude>**/MainWithNoCopyright.mxml</exclude>
+ </excludes>
+ <aggregate>true</aggregate>
+ <properties>
+ <year>${project.inceptionYear}</year>
+ <company>${project.organization.name}</company>
+ </properties>
+ <mapping>
+ <mxml>XML_STYLE</mxml>
+ <xsl>XML_STYLE</xsl>
+ <as>JAVADOC_STYLE</as>
+ </mapping>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+
+ </build>
+
+ <repositories>
+ <repository>
+ <id>maven2-repository.dev.java.net</id>
+ <name>Java.net Repository for Maven</name>
+ <url>http://download.java.net/maven/2/</url>
+ </repository>
+ <repository>
+ <id>central</id>
+ <name>maven-central</name>
+ <url>http://repo1.maven.org/maven2</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>dist.codehaus.org</id>
+ <layout>legacy</layout>
+ <url>http://dist.codehaus.org/</url>
+ </repository>
+ <repository>
+ <id>apache</id>
+ <name>Apache repository</name>
+ <layout>legacy</layout>
+ <url>http://cvs.apache.org/repository/</url>
+ </repository>
+ <repository>
+ <id>flex-mojos</id>
+ <url>http://repository.sonatype.org/content/groups/flexgroup</url>
+ <snapshots>
+ <enabled>false</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
+ </releases>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>dist.codehaus.org</id>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <name>XDoclet central repository on codehaus</name>
+ <url>http://dist.codehaus.org</url>
+ <layout>legacy</layout>
+ </pluginRepository>
+ <pluginRepository>
+ <id>repository.codehaus.org</id>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <name>Central repository on codehaus</name>
+ <url>http://repository.codehaus.org</url>
+ </pluginRepository>
+ <pluginRepository>
+ <id>mc-release</id>
+ <name>Local Maven repository of releases</name>
+ <url>http://mc-repo.googlecode.com/svn/maven2/releases</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>2.0-beta-5</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>2.1.1</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <inherited>true</inherited>
+ <version>2.4.3</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>${maven-pmd-plugin.version}</version>
+ <configuration>
+ <linkXref>true</linkXref>
+ <minimumTokens>100</minimumTokens>
+ <targetJdk>${compileSource}</targetJdk>
+ <rulesets>
+ <ruleset>pmd.xml</ruleset>
+ </rulesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>javancss-maven-plugin</artifactId>
+ <version>2.0-beta-2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.5</version>
+ </plugin>
+ </plugins>
+ </reporting>
+
+ <profiles>
+ <profile>
+ <id>hudson</id>
+ <distributionManagement>
+ <repository>
+ <id>txi_releases</id>
+ <url>http://txici.can.adobe.com:9999/nexus/content/repositories/txi</url>
+ </repository>
+ <snapshotRepository>
+ <id>txi_snapshot</id>
+ <url>http://txici.can.adobe.com:9999/nexus/content/repositories/txi_snapshots/</url>
+ </snapshotRepository>
+ </distributionManagement>
+ </profile>
+ </profiles>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-java-parent/pom.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java-parent/pom.xml b/FlexPMD/flex-pmd-java-parent/pom.xml
new file mode 100644
index 0000000..d5b80de
--- /dev/null
+++ b/FlexPMD/flex-pmd-java-parent/pom.xml
@@ -0,0 +1,56 @@
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.adobe.ac</groupId>
+ <artifactId>flex-pmd-java-parent</artifactId>
+ <packaging>pom</packaging>
+ <name>Adobe Flex PMD Java Parent</name>
+
+ <parent>
+ <groupId>com.adobe.ac</groupId>
+ <artifactId>flex-pmd</artifactId>
+ <version>1.3-SNAPSHOT</version>
+ <relativePath>../flex-pmd-parent/pom.xml</relativePath>
+ </parent>
+
+ <modules>
+ <module>../as3-parser</module>
+ <module>../as3-parser-api</module>
+ <module>../as3-plugin-utils</module>
+ <module>../flex-pmd-test-resources</module>
+ <module>../flex-pmd-ruleset</module>
+ <module>../flex-pmd-cpd</module>
+ <module>../flex-pmd-cpd-ant-task</module>
+ <module>../flex-pmd-cpd-maven-plugin</module>
+ <module>../flex-pmd-cpd-command-line</module>
+ <module>../flex-pmd-ruleset-api</module>
+ <module>../flex-pmd-core</module>
+ <module>../flex-pmd-ant-task</module>
+ <module>../flex-pmd-maven-plugin</module>
+ <module>../flex-pmd-command-line</module>
+ <module>../flex-pmd-command-line-api</module>
+ <module>../flex-pmd-files</module>
+ <module>../flex-pmd-metrics</module>
+ <module>../flex-pmd-metrics-command-line</module>
+ <module>../flex-pmd-metrics-ant-task</module>
+ <module>../flex-pmd-metrics-maven-plugin</module>
+ </modules>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-java-parent/sonar.sh
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java-parent/sonar.sh b/FlexPMD/flex-pmd-java-parent/sonar.sh
new file mode 100644
index 0000000..00c42ff
--- /dev/null
+++ b/FlexPMD/flex-pmd-java-parent/sonar.sh
@@ -0,0 +1,17 @@
+mvn sonar:sonar -Dsonar.jdbc.driver=com.mysql.jdbc.Driver -Dsonar.jdbc.url="jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8" -Dsonar.jdbc.username=root -Dsonar.jdbc.password= -o
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+