[ https://issues.apache.org/jira/browse/MPIR-478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17928579#comment-17928579 ]
ASF GitHub Bot commented on MPIR-478: ------------------------------------- elharo commented on code in PR #97: URL: https://github.com/apache/maven-project-info-reports-plugin/pull/97#discussion_r1962473942 ########## src/main/java/org/apache/maven/report/projectinfo/avatars/AvatarsProvider.java: ########## @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.report.projectinfo.avatars; + +import java.io.File; +import java.io.IOException; + +/** + * Avatar provider API. + */ +public interface AvatarsProvider { + + /** + * Set a base url for provider + * + * @param baseUrl for provider + */ + void setBaserUrl(String baseUrl); + + /** + * Set site output directory. Used to store avatar images in project. + * + * @param outputDirectory a site output directory + */ + void setOutputDirectory(File outputDirectory); + + /** + * Return an external url for gravatar image. Review Comment: URL ########## src/main/java/org/apache/maven/report/projectinfo/avatars/AvatarsProvider.java: ########## @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.report.projectinfo.avatars; + +import java.io.File; +import java.io.IOException; + +/** + * Avatar provider API. + */ +public interface AvatarsProvider { + + /** + * Set a base url for provider + * + * @param baseUrl for provider + */ + void setBaserUrl(String baseUrl); Review Comment: setBaseUrl, not setBaserUrl ########## src/main/java/org/apache/maven/report/projectinfo/TeamReport.java: ########## @@ -52,19 +53,50 @@ public class TeamReport extends AbstractProjectInfoReport { /** * Shows avatar images for team members that have a) properties/picUrl set b) An avatar at gravatar.com for their * email address - * <p/> - * Future versions of this plugin may implement different strategies for resolving avatar images, possibly - * using different providers. - *<p> - *<strong>Note</strong>: This property will be renamed to {@code tteam.showAvatarImages} in 3.0. + * * @since 2.6 */ @Parameter(property = "teamlist.showAvatarImages", defaultValue = "true") private boolean showAvatarImages; + /** + * Indicate if external url should be used for avatar images. + * <p> + * If set to <code>true</code> images will be downloaded and attached to report during build. + * + * @since 3.9.0 + */ + @Parameter(property = "teamlist.externalAvatarImages", defaultValue = "true") + private boolean externalAvatarImages; + + /** + * Base url for avatar provider. Review Comment: URL ########## src/main/java/org/apache/maven/report/projectinfo/TeamReport.java: ########## @@ -288,32 +334,13 @@ private void renderTeamMember(Contributor member, Map<String, Boolean> headersMa sink.tableRow_(); } - private static final String AVATAR_SIZE = "s=60"; - - private String getSpacerGravatarUrl() { - return protocol + "://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&" + AVATAR_SIZE; - } - - private String getGravatarUrl(String email) { - if (email == null) { - return null; - } - email = StringUtils.trim(email); - email = email.toLowerCase(); - MessageDigest md; + private String getExternalAvatarUrl(String email) { Review Comment: This should just throw IOException ########## src/main/java/org/apache/maven/report/projectinfo/TeamReport.java: ########## @@ -52,19 +53,50 @@ public class TeamReport extends AbstractProjectInfoReport { /** * Shows avatar images for team members that have a) properties/picUrl set b) An avatar at gravatar.com for their * email address - * <p/> - * Future versions of this plugin may implement different strategies for resolving avatar images, possibly - * using different providers. - *<p> - *<strong>Note</strong>: This property will be renamed to {@code tteam.showAvatarImages} in 3.0. + * * @since 2.6 */ @Parameter(property = "teamlist.showAvatarImages", defaultValue = "true") private boolean showAvatarImages; + /** + * Indicate if external url should be used for avatar images. + * <p> + * If set to <code>true</code> images will be downloaded and attached to report during build. + * + * @since 3.9.0 + */ + @Parameter(property = "teamlist.externalAvatarImages", defaultValue = "true") + private boolean externalAvatarImages; + + /** + * Base url for avatar provider. + * + * @since 3.9.0 + */ + @Parameter(property = "teamlist.avatarBaseUrl", defaultValue = "https://www.gravatar.com/avatar/") + private String avatarBaseUrl; + + /** + * Provider name for avatar images. + * <p> + * Report has one implementation for gravatar.com. Users can provide other by implementing {@link AvatarsProvider} Review Comment: Period at end ########## src/main/java/org/apache/maven/report/projectinfo/TeamReport.java: ########## @@ -52,19 +53,50 @@ public class TeamReport extends AbstractProjectInfoReport { /** * Shows avatar images for team members that have a) properties/picUrl set b) An avatar at gravatar.com for their * email address - * <p/> - * Future versions of this plugin may implement different strategies for resolving avatar images, possibly - * using different providers. - *<p> - *<strong>Note</strong>: This property will be renamed to {@code tteam.showAvatarImages} in 3.0. + * * @since 2.6 */ @Parameter(property = "teamlist.showAvatarImages", defaultValue = "true") private boolean showAvatarImages; + /** + * Indicate if external url should be used for avatar images. Review Comment: URL. Is there an internal URL? If not, delete "external" here or rewrite > describe use of gravatar.com for profiles in team report > -------------------------------------------------------- > > Key: MPIR-478 > URL: https://issues.apache.org/jira/browse/MPIR-478 > Project: Maven Project Info Reports Plugin > Issue Type: Improvement > Components: team > Affects Versions: 3.8.0 > Reporter: Herve Boutemy > Assignee: Slawomir Jaranowski > Priority: Major > Fix For: 3.9.0 > > > like MARTIFACT-83, to clarify privacy implications > see > https://github.com/apache/maven-project-info-reports-plugin/blob/master/src/main/java/org/apache/maven/report/projectinfo/TeamReport.java -- This message was sent by Atlassian Jira (v8.20.10#820010)