@@ -0,0 +1,66 @@ | |||
# Community Code of Conduct | |||
**Version 1.1 | |||
October 21, 2019** | |||
## Our Pledge | |||
In the interest of fostering an open and welcoming environment, we as community members, | |||
contributors committers, and project leaders pledge to make participation in our project and our | |||
community a harassment-free experience for everyone, regardless of age, body size, disability, | |||
ethnicity, sex characteristics, gender identity and expression, level of experience, education, | |||
socio-economic status, nationality, personal appearance, race, religion, or sexual identity and | |||
orientation. | |||
## Our Standards | |||
Examples of behavior that contributes to creating a positive environment include: | |||
* Using welcoming and inclusive language | |||
* Being respectful of differing viewpoints and experiences | |||
* Gracefully accepting constructive criticism | |||
* Focusing on what is best for the community | |||
* Showing empathy towards other community members | |||
Examples of unacceptable behavior by participants include: | |||
* The use of sexualized language or imagery and unwelcome sexual attention or advances | |||
* Trolling, insulting/derogatory comments, and personal or political attacks | |||
* Public or private harassment | |||
* Publishing others' private information, such as a physical or electronic address, without explicit permission | |||
* Other conduct which could reasonably be considered inappropriate in a professional setting | |||
## Our Responsibilities | |||
With the support of the Eclipse Foundation staff (the “Staff”), project committers and leaders are | |||
responsible for clarifying the standards of acceptable behavior and are expected to take | |||
appropriate and fair corrective action in response to any instances of unacceptable behavior. | |||
Project committers and leaders have the right and responsibility to remove, edit, or reject | |||
comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this | |||
Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that | |||
they deem inappropriate, threatening, offensive, or harmful. | |||
## Scope | |||
This Code of Conduct applies within all project spaces, and it also applies when an individual is | |||
representing the Eclipse Foundation project or its community in public spaces. Examples of | |||
representing a project or community include posting via an official social media account, or | |||
acting as a project representative at an online or offline event. Representation of a project may be | |||
further defined and clarified by project committers, leaders, or the EMO. | |||
## Enforcement | |||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by | |||
contacting the Staff at codeofconduct@eclipse.org. All complaints will be reviewed and | |||
investigated and will result in a response that is deemed necessary and appropriate to the | |||
circumstances. The Staff is obligated to maintain confidentiality with regard to the reporter of an | |||
incident. Further details of specific enforcement policies may be posted separately. | |||
Project committers or leaders who do not follow the Code of Conduct in good faith may face | |||
temporary or permanent repercussions as determined by the Staff. | |||
## Attribution | |||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, | |||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html |
@@ -0,0 +1,51 @@ | |||
# Contributing to AspectJ | |||
AspectJ is a maven project, as such it should import cleanly into your IDE. The project uses github for issue tracking ( https://github.com/eclipse/org.aspectj/issues ). | |||
## Working on the codebase | |||
### Importing the project | |||
#### Eclipse | |||
Simply run the maven project importer and point it at the root of the cloned AspectJ repository. This will import all of the AspectJ | |||
modules. | |||
Each module comes with its own testsuites however there is a module called `run-all-junit-tests` - within there is a file `RunTheseBeforeYouCommitTests` which you can launch as a JUnit test (rightclick -> RunAs -> Junit Test). | |||
This will run a few thousand tests to verify your IDE import. | |||
Some tests are conditional based on the JDK you are using in your IDE since they are exercising features only available in recent Java. | |||
In order to execute all possible tests ensure you are running the tests with the latest available Java JDK release. | |||
A JRE will likely not suffice because tools like javadoc will be invoked from the tests. | |||
#### IntelliJ | |||
TODO | |||
### Developing tests | |||
If developing system tests based on the sources for complete Java applications, follow the pattern in the `tests` module. | |||
For each version of AspectJ there is a `bugsNNN` folder with subfolders for each issue. | |||
Then there is a pair consisting of a test specification in a `ajcNNN.xml` file in the `src/test/resources` folder and a `AjcNNNTests.java` source file in the `src/main/java` folder. | |||
Simply follow the pattern for previous versions to add a new suite for a new version of AspectJ. | |||
Alongside the `AjcNNNTests` file you might add other test suites for particular new language features of Java. | |||
All these suites are then pulled together in a `AllTestsAspectJNNN.java` suite. | |||
In turn the suites are pulled together in a `AllTestsNN` suite for the major version of AspectJ, and so on. | |||
Creating a test is then this basic process: | |||
- create a new folder based on the issue number in the correct `bugsNNN` folder. | |||
Add the relevant material into that folder (.java sources, any resources, xml files, etc). | |||
- Create a definition of the test steps ('build these files', 'package this jar from these classes') in the correct `ajcNNN.xml` file in the `src/main/resources` area. | |||
- Created a test in the correct `AjcNNNTests.java` file that references the specification written in the XML. | |||
### Compiler issues | |||
AspectJ is based on a modified Eclipse JDT that is using a modified grammar, extended to support AspectJ constructs. | |||
This modified compiler exists in a separate repository: https://github.com/eclipse/aspectj.eclipse.jdt.core | |||
Some issues involving compiler problems, for example if Java code isn't working because a variable was named after an AspectJ keyword - these issues must be worked on in that other project, even though the tests for that will likely live in this project. | |||
## Contributions | |||
Please contribute via Pull Request against the GitHub repository. |
@@ -0,0 +1,199 @@ | |||
Per: https://www.eclipse.org/legal/epl-v10.html | |||
Eclipse Public License - v 1.0 | |||
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC | |||
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM | |||
CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. | |||
1. DEFINITIONS | |||
"Contribution" means: | |||
a) in the case of the initial Contributor, the initial code and documentation | |||
distributed under this Agreement, and | |||
b) in the case of each subsequent Contributor: | |||
i) changes to the Program, and | |||
ii) additions to the Program; | |||
where such changes and/or additions to the Program originate from and are | |||
distributed by that particular Contributor. A Contribution 'originates' from a | |||
Contributor if it was added to the Program by such Contributor itself or | |||
anyone acting on such Contributor's behalf. Contributions do not include | |||
additions to the Program which: (i) are separate modules of software | |||
distributed in conjunction with the Program under their own license agreement, | |||
and (ii) are not derivative works of the Program. | |||
"Contributor" means any person or entity that distributes the Program. | |||
"Licensed Patents" mean patent claims licensable by a Contributor which are | |||
necessarily infringed by the use or sale of its Contribution alone or when | |||
combined with the Program. | |||
"Program" means the Contributions distributed in accordance with this Agreement. | |||
"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. | |||
2. GRANT OF RIGHTS | |||
a) Subject to the terms of this Agreement, each Contributor hereby grants | |||
Recipient a non-exclusive, worldwide, royalty-free copyright license to | |||
reproduce, prepare derivative works of, publicly display, publicly perform, | |||
distribute and sublicense the Contribution of such Contributor, if any, | |||
and such derivative works, in source code and object code form. | |||
b) Subject to the terms of this Agreement, each Contributor hereby grants | |||
Recipient a non-exclusive, worldwide, royalty-free patent license under | |||
Licensed Patents to make, use, sell, offer to sell, import and otherwise | |||
transfer the Contribution of such Contributor, if any, in source code and | |||
object code form. This patent license shall apply to the combination of | |||
the Contribution and the Program if, at the time the Contribution is added | |||
by the Contributor, such addition of the Contribution causes such combination | |||
to be covered by the Licensed Patents. The patent license shall not apply to | |||
any other combinations which include the Contribution. No hardware per se | |||
is licensed hereunder. | |||
c) Recipient understands that although each Contributor grants the licenses to | |||
its Contributions set forth herein, no assurances are provided by any | |||
Contributor that the Program does not infringe the patent or other | |||
intellectual property rights of any other entity. Each Contributor disclaims | |||
any liability to Recipient for claims brought by any other entity based on | |||
infringement of intellectual property rights or otherwise. As a condition to | |||
exercising the rights and licenses granted hereunder, each Recipient hereby | |||
assumes sole responsibility to secure any other intellectual property rights | |||
needed, if any. For example, if a third party patent license is required to | |||
allow Recipient to distribute the Program, it is Recipient's responsibility | |||
to acquire that license before distributing the Program. | |||
d) Each Contributor represents that to its knowledge it has sufficient | |||
copyright rights in its Contribution, if any, to grant the copyright license | |||
set forth in this Agreement. | |||
3. REQUIREMENTS | |||
A Contributor may choose to distribute the Program in object code form under | |||
its own license agreement, provided that: | |||
a) it complies with the terms and conditions of this Agreement; and | |||
b) its license agreement: | |||
i) effectively disclaims on behalf of all Contributors all warranties and | |||
conditions, express and implied, including warranties or conditions of title | |||
and non-infringement, and implied warranties or conditions of | |||
merchantability and fitness for a particular purpose; | |||
ii) effectively excludes on behalf of all Contributors all liability for | |||
damages, including direct, indirect, special, incidental and consequential | |||
damages, such as lost profits; | |||
iii) states that any provisions which differ from this Agreement are offered by | |||
that Contributor alone and not by any other party; and | |||
iv) states that source code for the Program is available from such Contributor, | |||
and informs licensees how to obtain it in a reasonable manner on or through | |||
a medium customarily used for software exchange. | |||
When the Program is made available in source code form: | |||
a) it must be made available under this Agreement; and | |||
b) a copy of this Agreement must be included with each copy of the Program. | |||
Contributors may not remove or alter any copyright notices contained within | |||
the Program. | |||
Each Contributor must identify itself as the originator of its Contribution, | |||
if any, in a manner that reasonably allows subsequent Recipients to identify | |||
the originator of the Contribution. | |||
4. COMMERCIAL DISTRIBUTION | |||
Commercial distributors of software may accept certain responsibilities with | |||
respect to end users, business partners and the like. While this license is | |||
intended to facilitate the commercial use of the Program, the Contributor | |||
who includes the Program in a commercial product offering should do so in | |||
a manner which does not create potential liability for other Contributors. | |||
Therefore, if a Contributor includes the Program in a commercial product | |||
offering, such Contributor ("Commercial Contributor") hereby agrees to | |||
defend and indemnify every other Contributor ("Indemnified Contributor") | |||
against any losses, damages and costs (collectively "Losses") arising from | |||
claims, lawsuits and other legal actions brought by a third party against | |||
the Indemnified Contributor to the extent caused by the acts or omissions | |||
of such Commercial Contributor in connection with its distribution of the | |||
Program in a commercial product offering. The obligations in this section | |||
do not apply to any claims or Losses relating to any actual or alleged | |||
intellectual property infringement. In order to qualify, an Indemnified | |||
Contributor must: a) promptly notify the Commercial Contributor in writing | |||
of such claim, and b) allow the Commercial Contributor to control, and | |||
cooperate with the Commercial Contributor in, the defense and any | |||
related settlement negotiations. The Indemnified Contributor may | |||
participate in any such claim at its own expense. | |||
For example, a Contributor might include the Program in a commercial product | |||
offering, Product X. That Contributor is then a Commercial Contributor. If | |||
that Commercial Contributor then makes performance claims, or offers | |||
warranties related to Product X, those performance claims and warranties | |||
are such Commercial Contributor's responsibility alone. Under this section, | |||
the Commercial Contributor would have to defend claims against the other | |||
Contributors related to those performance claims and warranties, and if a | |||
court requires any other Contributor to pay any damages as a result, the | |||
Commercial Contributor must pay those damages. | |||
5. NO WARRANTY | |||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON | |||
AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER | |||
EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR | |||
CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A | |||
PARTICULAR PURPOSE. Each Recipient is solely responsible for determining | |||
the appropriateness of using and distributing the Program and assumes all | |||
risks associated with its exercise of rights under this Agreement , | |||
including but not limited to the risks and costs of program errors, compliance | |||
with applicable laws, damage to or loss of data, programs or equipment, and | |||
unavailability or interruption of operations. | |||
6. DISCLAIMER OF LIABILITY | |||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY | |||
CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION | |||
LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |||
ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE | |||
EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE | |||
POSSIBILITY OF SUCH DAMAGES. | |||
7. GENERAL | |||
If any provision of this Agreement is invalid or unenforceable under applicable | |||
law, it shall not affect the validity or enforceability of the remainder of | |||
the terms of this Agreement, and without further action by the parties hereto, | |||
such provision shall be reformed to the minimum extent necessary to make | |||
such provision valid and enforceable. | |||
If Recipient institutes patent litigation against any entity (including a | |||
cross-claim or counterclaim in a lawsuit) alleging that the Program itself | |||
(excluding combinations of the Program with other software or hardware) | |||
infringes such Recipient's patent(s), then such Recipient's rights granted | |||
under Section 2(b) shall terminate as of the date such litigation is filed. | |||
All Recipient's rights under this Agreement shall terminate if it fails to | |||
comply with any of the material terms or conditions of this Agreement and | |||
does not cure such failure in a reasonable period of time after becoming | |||
aware of such noncompliance. If all Recipient's rights under this Agreement | |||
terminate, Recipient agrees to cease use and distribution of the Program as | |||
soon as reasonably practicable. However, Recipient's obligations under this | |||
Agreement and any licenses granted by Recipient relating to the Program | |||
shall continue and survive. | |||
Everyone is permitted to copy and distribute copies of this Agreement, but | |||
in order to avoid inconsistency the Agreement is copyrighted and may only | |||
be modified in the following manner. The Agreement Steward reserves the | |||
right to publish new versions (including revisions) of this Agreement from | |||
time to time. No one other than the Agreement Steward has the right to | |||
modify this Agreement. The Eclipse Foundation is the initial Agreement | |||
Steward. The Eclipse Foundation may assign the responsibility to serve as | |||
the Agreement Steward to a suitable separate entity. Each new version of | |||
the Agreement will be given a distinguishing version number. The Program | |||
(including Contributions) may always be distributed subject to the | |||
version of the Agreement under which it was received. In addition, after | |||
a new version of the Agreement is published, Contributor may elect to | |||
distribute the Program (including its Contributions) under the new version. | |||
Except as expressly stated in Sections 2(a) and 2(b) above, Recipient | |||
receives no rights or licenses to the intellectual property of any | |||
Contributor under this Agreement, whether expressly, by implication, | |||
estoppel or otherwise. All rights in the Program not expressly granted | |||
under this Agreement are reserved. | |||
This Agreement is governed by the laws of the State of New York and the | |||
intellectual property laws of the United States of America. No party to this | |||
Agreement will bring a legal action under this Agreement more than one year | |||
after the cause of action arose. Each party waives its rights to a jury | |||
trial in any resulting litigation. |
@@ -767,9 +767,9 @@ public class Main implements Config { | |||
/* This section of code handles errors that occur during compilation */ | |||
static final String internalErrorMessage = " \n" | |||
+ "If this has not already been logged as a bug raised please raise \n" | |||
+ "a new AspectJ bug at https://bugs.eclipse.org/bugs including the \n" | |||
+ "text below. To make the bug a priority, please also include a test\n" | |||
+ "program that can reproduce this problem.\n "; | |||
+ "a new AspectJ bug at https://github.com/eclipse/org.aspectj/issues \n" | |||
+ "including the text below. To make the bug a priority, please also \n" | |||
+ "include a test program that can reproduce this problem.\n "; | |||
static public void handleInternalError(Throwable uncaughtThrowable) { | |||
System.err.println("An internal error occured in ajdoc"); |
@@ -242,6 +242,41 @@ | |||
</plugin> | |||
</plugins> | |||
<pluginManagement> | |||
<plugins> | |||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> | |||
<plugin> | |||
<groupId>org.eclipse.m2e</groupId> | |||
<artifactId>lifecycle-mapping</artifactId> | |||
<version>1.0.0</version> | |||
<configuration> | |||
<lifecycleMappingMetadata> | |||
<pluginExecutions> | |||
<pluginExecution> | |||
<pluginExecutionFilter> | |||
<groupId> | |||
org.codehaus.mojo | |||
</groupId> | |||
<artifactId> | |||
flatten-maven-plugin | |||
</artifactId> | |||
<versionRange> | |||
[1.2.2,) | |||
</versionRange> | |||
<goals> | |||
<goal>flatten</goal> | |||
</goals> | |||
</pluginExecutionFilter> | |||
<action> | |||
<ignore></ignore> | |||
</action> | |||
</pluginExecution> | |||
</pluginExecutions> | |||
</lifecycleMappingMetadata> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
</pluginManagement> | |||
</build> | |||
<dependencies> |
@@ -235,6 +235,41 @@ | |||
</plugin> | |||
</plugins> | |||
<pluginManagement> | |||
<plugins> | |||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> | |||
<plugin> | |||
<groupId>org.eclipse.m2e</groupId> | |||
<artifactId>lifecycle-mapping</artifactId> | |||
<version>1.0.0</version> | |||
<configuration> | |||
<lifecycleMappingMetadata> | |||
<pluginExecutions> | |||
<pluginExecution> | |||
<pluginExecutionFilter> | |||
<groupId> | |||
org.codehaus.mojo | |||
</groupId> | |||
<artifactId> | |||
flatten-maven-plugin | |||
</artifactId> | |||
<versionRange> | |||
[1.2.2,) | |||
</versionRange> | |||
<goals> | |||
<goal>flatten</goal> | |||
</goals> | |||
</pluginExecutionFilter> | |||
<action> | |||
<ignore></ignore> | |||
</action> | |||
</pluginExecution> | |||
</pluginExecutions> | |||
</lifecycleMappingMetadata> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
</pluginManagement> | |||
</build> | |||
<dependencies> |
@@ -311,6 +311,41 @@ | |||
</plugins> | |||
<pluginManagement> | |||
<plugins> | |||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> | |||
<plugin> | |||
<groupId>org.eclipse.m2e</groupId> | |||
<artifactId>lifecycle-mapping</artifactId> | |||
<version>1.0.0</version> | |||
<configuration> | |||
<lifecycleMappingMetadata> | |||
<pluginExecutions> | |||
<pluginExecution> | |||
<pluginExecutionFilter> | |||
<groupId> | |||
org.codehaus.mojo | |||
</groupId> | |||
<artifactId> | |||
flatten-maven-plugin | |||
</artifactId> | |||
<versionRange> | |||
[1.2.2,) | |||
</versionRange> | |||
<goals> | |||
<goal>flatten</goal> | |||
</goals> | |||
</pluginExecutionFilter> | |||
<action> | |||
<ignore></ignore> | |||
</action> | |||
</pluginExecution> | |||
</pluginExecutions> | |||
</lifecycleMappingMetadata> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
</pluginManagement> | |||
</build> | |||
<dependencies> |
@@ -311,6 +311,41 @@ | |||
</plugin> | |||
</plugins> | |||
<pluginManagement> | |||
<plugins> | |||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> | |||
<plugin> | |||
<groupId>org.eclipse.m2e</groupId> | |||
<artifactId>lifecycle-mapping</artifactId> | |||
<version>1.0.0</version> | |||
<configuration> | |||
<lifecycleMappingMetadata> | |||
<pluginExecutions> | |||
<pluginExecution> | |||
<pluginExecutionFilter> | |||
<groupId> | |||
org.codehaus.mojo | |||
</groupId> | |||
<artifactId> | |||
flatten-maven-plugin | |||
</artifactId> | |||
<versionRange> | |||
[1.2.2,) | |||
</versionRange> | |||
<goals> | |||
<goal>flatten</goal> | |||
</goals> | |||
</pluginExecutionFilter> | |||
<action> | |||
<ignore></ignore> | |||
</action> | |||
</pluginExecution> | |||
</pluginExecutions> | |||
</lifecycleMappingMetadata> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
</pluginManagement> | |||
</build> | |||
<dependencies> |
@@ -164,5 +164,40 @@ | |||
</plugin> | |||
</plugins> | |||
<pluginManagement> | |||
<plugins> | |||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> | |||
<plugin> | |||
<groupId>org.eclipse.m2e</groupId> | |||
<artifactId>lifecycle-mapping</artifactId> | |||
<version>1.0.0</version> | |||
<configuration> | |||
<lifecycleMappingMetadata> | |||
<pluginExecutions> | |||
<pluginExecution> | |||
<pluginExecutionFilter> | |||
<groupId> | |||
org.codehaus.mojo | |||
</groupId> | |||
<artifactId> | |||
flatten-maven-plugin | |||
</artifactId> | |||
<versionRange> | |||
[1.2.2,) | |||
</versionRange> | |||
<goals> | |||
<goal>flatten</goal> | |||
</goals> | |||
</pluginExecutionFilter> | |||
<action> | |||
<ignore></ignore> | |||
</action> | |||
</pluginExecution> | |||
</pluginExecutions> | |||
</lifecycleMappingMetadata> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
</pluginManagement> | |||
</build> | |||
</project> |