Skip to content

Commit eb8a122

Browse files
committed
Merge branch 'develop' into main
2 parents c8ee1c7 + 16ca1c0 commit eb8a122

File tree

134 files changed

+11092
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+11092
-0
lines changed

.gitignore

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Created by https://www.gitignore.io/api/eclipse,java,maven
2+
3+
### Eclipse ###
4+
*.pydevproject
5+
.metadata
6+
.gradle
7+
bin/
8+
tmp/
9+
*.tmp
10+
*.bak
11+
*.swp
12+
*~.nib
13+
local.properties
14+
.settings/
15+
.loadpath
16+
17+
# Eclipse Core
18+
.project
19+
20+
# External tool builders
21+
.externalToolBuilders/
22+
23+
# Locally stored "Eclipse launch configurations"
24+
*.launch
25+
26+
# CDT-specific
27+
.cproject
28+
29+
# JDT-specific (Eclipse Java Development Tools)
30+
.classpath
31+
32+
# Java annotation processor (APT)
33+
.factorypath
34+
35+
# PDT-specific
36+
.buildpath
37+
38+
# sbteclipse plugin
39+
.target
40+
41+
# TeXlipse plugin
42+
.texlipse
43+
44+
45+
### Java ###
46+
*.class
47+
48+
# Mobile Tools for Java (J2ME)
49+
.mtj.tmp/
50+
51+
# Package Files #
52+
*.jar
53+
*.war
54+
*.ear
55+
56+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
57+
hs_err_pid*
58+
59+
60+
### Maven ###
61+
target/
62+
pom.xml.tag
63+
pom.xml.releaseBackup
64+
pom.xml.versionsBackup
65+
pom.xml.next
66+
release.properties
67+
dependency-reduced-pom.xml
68+
buildNumber.properties
69+
.mvn/timing.properties
70+
71+
### Vault ###
72+
.vlt
73+
74+
### IntelliJ ###
75+
.idea/
76+
*.iml

CLA.md

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Contributor License Agreement
2+
3+
Thank you for your interest in contributing to the EToolbox Link Inspector ("Material") by Exadel, Inc. ("We" or "Us"). The present Contributor License Agreement ("CLA") is for your protection as a Contributor as well as the protection of Us; it does not change your rights to use your own Contributions for any other purpose.
4+
5+
You must agree to the terms of this CLA before making a Contribution to the Material. This CLA covers any and all Contributions that You, now or in the future, submit to the Material. This CLA shall come into effect upon Your acceptance of its terms and conditions.
6+
7+
## 1. Definitions
8+
a. "You" means the individual Copyright owner who Submits a Contribution to Us.
9+
10+
b. "Contribution" means source code and any other copyrightable materials submitted by you to Us, including any associated comments and documentation.
11+
12+
c. "Copyright" means all rights protecting works of authorship, including copyright, moral and neighboring rights, as appropriate, for the full term of their existence.
13+
14+
d. "Material" means the software or documentation made available by Us to third parties. After You Submit the Contribution, it may be included in the Material.
15+
16+
e. "Submit" means any act by which a Contribution is transferred to Us by You by means of tangible or intangible media, including but not limited to electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Us, but excluding any transfer that is conspicuously marked or otherwise designated in writing by You as "Not a Contribution."
17+
18+
## 2. Grant of Copyright License
19+
20+
Subject to the terms and conditions of this CLA, You hereby grant to Us and to recipients of Material distributed by Us a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works.
21+
22+
## 3. Grant of Patent License
23+
24+
Subject to the terms and conditions of this CLA, You hereby grant to Us and to recipients of Material distributed by Us a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Material, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by a combination of Your Contribution(s) with the Material to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Material to which you have contributed, constitutes a direct or contributory patent infringement, then any patent licenses granted to that entity under this CLA for that Contribution or Material shall terminate as of the date such litigation is filed.
25+
26+
## 4. Other rights reserved
27+
28+
Each party reserves all rights not expressly granted in this CLA. No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are granted by implication, exhaustion, estoppel or otherwise.
29+
30+
## 5. Originality of Contributions
31+
32+
You represent that you are legally entitled to grant the above licenses. If your employer(s) has rights to intellectual property that you create that includes your Contributions, you represent that you have received permission to make Contributions on behalf of that employer or that your employer has waived such rights for your Contributions to Us. You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions.
33+
34+
## 6. Notice to Us
35+
36+
You agree to notify Us of any facts or circumstances of which you become aware that would make the representations in this CLA inaccurate in any respect.
37+
38+
## 7. Disclaimer
39+
40+
You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on "as is" basis. More particularly, all express or implied warranties including, without limitation, any implied warranty of satisfactory quality, fitness for a particular purpose, and non-infringement are expressly disclaimed by You to Us and by Us to You. To the extent that any such warranties cannot be disclaimed, such warranty is limited in duration and extent to the minimum period and extent permitted by applicable law.
41+
42+
## 8. Consequential Damage Waiver
43+
44+
To the maximum extent permitted by applicable law, in no event will You or We be liable for any loss of profits, loss of anticipated savings, loss of data, indirect, special, incidental, consequential and exemplary damages arising out of this CLA regardless of the legal or equitable theory (contract, tort or otherwise) upon which the claim is based.
45+
46+
47+
## 9. Information About Submissions
48+
49+
You agree that this Material and Contributions to it are public and that a record of the Contribution (including all personal information you submit with it) is maintained indefinitely and may be redistributed consistent with this Material, compliance with the open source license(s) involved, and maintenance of authorship attribution.
50+
51+
## 10. Miscellaneous
52+
53+
This CLA is the entire agreement between the parties and supersedes any and all prior agreements, understandings or communications, written or oral, between the parties relating to the subject matter hereof. You acknowledge that We are not obligated to use your Contribution as part of the Material distributed by Us and may make the decision to include any Contribution as We believe is appropriate.

README.md

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# EToolbox Link Inspector
2+
3+
![GitHub contributors](https://img.shields.io/github/contributors/exadel-inc/etoolbox-link-inspector)
4+
![GitHub Repo stars](https://img.shields.io/github/stars/exadel-inc/etoolbox-link-inspector?style=plastic)
5+
![GitHub issues](https://img.shields.io/github/issues/exadel-inc/etoolbox-link-inspector)
6+
[![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](https://opensource.org/licenses/Apache-2.0)
7+
8+
**EToolbox Link Inspector** is a tool for Adobe Experience Manger (AEM) that collects broken links (external/internal) under the specified content path. The tool generates a comprehensive report with the detailed information about broken links and provides content managers with a possibility to fix batches of broken links via UI dialog.
9+
10+
## Description
11+
**EToolbox Link Inspector** gathers the following data in relation to broken links:
12+
- link href
13+
- link type
14+
- http status code
15+
- status message
16+
- reference to the page containing the link, including the page's title and location
17+
- reference to the component containing the link, including the component's title, resource type and location
18+
- reference to the property containing the link, including the property's name and location
19+
20+
![Overview](_img/readme-1.png)
21+
22+
The primary focus is detection of broken links on an Author instance and correcting them by content managers before going to live.
23+
24+
The tool provides a possibility to fix broken links (single as well as batches) via TouchUI based dialogs:
25+
26+
![fix-broken-link](_img/readme-2.png)
27+
28+
![replace-by-pattern](_img/readme-3.png)
29+
30+
Besides, there is a broad set of configurable options for report generation allowing to set up content and links filtering in order to have a more precise inspection.
31+
32+
See [project's Wiki](#) for more details.
33+
34+
## System Requirements
35+
36+
AEM 6.5 | AEM 6.4 | Java SE | Maven
37+
---------|---------|---------|---------
38+
6.5.5.0+ | 6.4.8.1+ | 8, 11 | 3.3.9+
39+
40+
## Installation
41+
The tool can be installed using the package or via building the project.
42+
43+
### Package
44+
1. Get the latest package version from https://github.com/exadel-inc/etoolbox-link-inspector/releases
45+
2. Install the package _**etoolbox-link-inspector.all-XX.zip**_ using the _Package Manager_
46+
3. Ensure that the bundle **_EToolbox Link Inspector - Core (etoolbox-link-inspector.core)_** is in _Active_ state.
47+
48+
### How to build
49+
50+
To build all the modules and deploy the `all` package to a local instance of AEM, run in the project root directory the following command:
51+
52+
`mvn clean install -PautoInstallSinglePackage`
53+
54+
## Getting Started
55+
After the [Installation](#Installation) steps are completed it is necessary to:
56+
1. Set up the cron expression and enable the scheduler task at _/system/console/configMgr/com.exadel.etoolbox.linkinspector.core.schedulers.DataFeedGenerationTask_, see the [Scheduled Data Feed Generation](#) section in Wiki for more details;
57+
2. Set up the root path for searching broken links at _/system/console/configMgr/com.exadel.etoolbox.linkinspector.core.services.data.impl.GridResourcesGeneratorImpl_, see the [Data Filtering](#) section in Wiki for more details.
58+
59+
The report generation will start in accordance with the configured cron. As soon as the data feed is generated, the results will be available at **_Tools > EToolbox > Link Inspector_**
60+
(_<YOUR_AEM_INSTANCE>/tools/etoolbox/link-inspector.html_)
61+
62+
Check out the [Data Filtering](#) section in Wiki for more filtering options.
63+
64+
## Documentation
65+
66+
You can find the documentation [in the project's Wiki](#).
67+
68+
## Contributing
69+
70+
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.
71+
72+
1. Fork the Project
73+
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
74+
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
75+
4. Push to the Branch (`git push origin feature/AmazingFeature`)
76+
5. Open a Pull Request
77+
78+
## License
79+
80+
This project is available under the [Apache License, Version 2.0](https://opensource.org/licenses/Apache-2.0).

_img/readme-1.png

155 KB
Loading

_img/readme-2.png

22.1 KB
Loading

_img/readme-3.png

22.9 KB
Loading

all/pom.xml

+151
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<!-- ====================================================================== -->
7+
<!-- P A R E N T P R O J E C T D E S C R I P T I O N -->
8+
<!-- ====================================================================== -->
9+
<parent>
10+
<groupId>com.exadel.etoolbox</groupId>
11+
<artifactId>etoolbox-link-inspector</artifactId>
12+
<version>1.0-SNAPSHOT</version>
13+
<relativePath>../pom.xml</relativePath>
14+
</parent>
15+
16+
<!-- ====================================================================== -->
17+
<!-- P R O J E C T D E S C R I P T I O N -->
18+
<!-- ====================================================================== -->
19+
<artifactId>etoolbox-link-inspector.all</artifactId>
20+
<packaging>content-package</packaging>
21+
<name>EToolbox Link Inspector - All</name>
22+
<description>All content package for EToolbox Link Inspector</description>
23+
24+
<!-- ====================================================================== -->
25+
<!-- B U I L D D E F I N I T I O N -->
26+
<!-- ====================================================================== -->
27+
<build>
28+
<plugins>
29+
<!-- ====================================================================== -->
30+
<!-- V A U L T P A C K A G E P L U G I N S -->
31+
<!-- ====================================================================== -->
32+
<plugin>
33+
<groupId>org.apache.jackrabbit</groupId>
34+
<artifactId>filevault-package-maven-plugin</artifactId>
35+
<extensions>true</extensions>
36+
<configuration>
37+
<group>com.exadel.etoolbox</group>
38+
<packageType>container</packageType>
39+
<properties>
40+
<cloudManagerTarget>all</cloudManagerTarget>
41+
</properties>
42+
<!-- skip sub package validation for now as some vendor packages like CIF apps will not pass -->
43+
<skipSubPackageValidation>true</skipSubPackageValidation>
44+
<embeddeds>
45+
<embedded>
46+
<groupId>com.exadel.etoolbox</groupId>
47+
<artifactId>etoolbox-link-inspector.ui.apps</artifactId>
48+
<type>zip</type>
49+
<target>/apps/etoolbox-link-inspector-packages/application/install</target>
50+
</embedded>
51+
<embedded>
52+
<groupId>com.exadel.etoolbox</groupId>
53+
<artifactId>etoolbox-link-inspector.core</artifactId>
54+
<target>/apps/etoolbox-link-inspector-packages/application/install</target>
55+
</embedded>
56+
<embedded>
57+
<groupId>com.exadel.etoolbox</groupId>
58+
<artifactId>etoolbox-link-inspector.ui.content</artifactId>
59+
<type>zip</type>
60+
<target>/apps/etoolbox-link-inspector-packages/content/install</target>
61+
</embedded>
62+
<embedded>
63+
<groupId>com.exadel.etoolbox</groupId>
64+
<artifactId>etoolbox-link-inspector.ui.config</artifactId>
65+
<type>zip</type>
66+
<target>/apps/etoolbox-link-inspector-packages/application/install</target>
67+
</embedded>
68+
</embeddeds>
69+
</configuration>
70+
</plugin>
71+
<plugin>
72+
<groupId>com.day.jcr.vault</groupId>
73+
<artifactId>content-package-maven-plugin</artifactId>
74+
<extensions>true</extensions>
75+
<configuration>
76+
<verbose>true</verbose>
77+
<failOnError>true</failOnError>
78+
</configuration>
79+
</plugin>
80+
<plugin>
81+
<artifactId>maven-clean-plugin</artifactId>
82+
<executions>
83+
<execution>
84+
<id>auto-clean</id>
85+
<phase>initialize</phase>
86+
<goals>
87+
<goal>clean</goal>
88+
</goals>
89+
</execution>
90+
</executions>
91+
</plugin>
92+
</plugins>
93+
</build>
94+
95+
<!-- ====================================================================== -->
96+
<!-- P R O F I L E S -->
97+
<!-- ====================================================================== -->
98+
<profiles>
99+
<profile>
100+
<id>autoInstallSinglePackage</id>
101+
<activation>
102+
<activeByDefault>false</activeByDefault>
103+
</activation>
104+
<build>
105+
<plugins>
106+
<plugin>
107+
<groupId>com.day.jcr.vault</groupId>
108+
<artifactId>content-package-maven-plugin</artifactId>
109+
<executions>
110+
<execution>
111+
<id>install-package</id>
112+
<goals>
113+
<goal>install</goal>
114+
</goals>
115+
<configuration>
116+
<targetURL>http://${aem.host}:${aem.port}/crx/packmgr/service.jsp</targetURL>
117+
<failOnError>true</failOnError>
118+
</configuration>
119+
</execution>
120+
</executions>
121+
</plugin>
122+
</plugins>
123+
</build>
124+
</profile>
125+
</profiles>
126+
127+
<!-- ====================================================================== -->
128+
<!-- D E P E N D E N C I E S -->
129+
<!-- ====================================================================== -->
130+
<dependencies>
131+
<dependency>
132+
<groupId>com.exadel.etoolbox</groupId>
133+
<artifactId>etoolbox-link-inspector.ui.apps</artifactId>
134+
<version>${project.version}</version>
135+
<type>zip</type>
136+
</dependency>
137+
<dependency>
138+
<groupId>com.exadel.etoolbox</groupId>
139+
<artifactId>etoolbox-link-inspector.ui.content</artifactId>
140+
<version>${project.version}</version>
141+
<type>zip</type>
142+
</dependency>
143+
<dependency>
144+
<groupId>com.exadel.etoolbox</groupId>
145+
<artifactId>etoolbox-link-inspector.ui.config</artifactId>
146+
<version>${project.version}</version>
147+
<type>zip</type>
148+
</dependency>
149+
150+
</dependencies>
151+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
~ Licensed under the Apache License, Version 2.0 (the "License");
4+
~ you may not use this file except in compliance with the License.
5+
~ You may obtain a copy of the License at
6+
~
7+
~ http://www.apache.org/licenses/LICENSE-2.0
8+
~
9+
~ Unless required by applicable law or agreed to in writing, software
10+
~ distributed under the License is distributed on an "AS IS" BASIS,
11+
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
~ See the License for the specific language governing permissions and
13+
~ limitations under the License.
14+
-->
15+
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0"
16+
jcr:primaryType="vlt:PackageDefinition"
17+
providerLink="https://github.com/adobe/aem-project-archetype/releases"
18+
providerName="Adobe Systems Inc."
19+
providerUrl="https://www.adobe.com"
20+
testedWith="AEM 6.5">
21+
</jcr:root>

0 commit comments

Comments
 (0)