sonarqube for aem

34

Upload: connectwebex

Post on 10-Aug-2015

79 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: SonarQube for AEM
Page 2: SonarQube for AEM
Page 3: SonarQube for AEM
Page 4: SonarQube for AEM
Page 5: SonarQube for AEM
Page 6: SonarQube for AEM
Page 7: SonarQube for AEM
Page 8: SonarQube for AEM
Page 9: SonarQube for AEM
Page 10: SonarQube for AEM

Session session = null;try {

session = repo.loginService(null, null);// do stuff

} catch (RepositoryException e) {LOGGER.error("Unable to create session", e);

} finally {if (session != null && session.isLive()) {

session.logout();}

}

Session session = null;try {

session = repo.loginService(null, null);// do stuff

} catch (RepositoryException e) {LOGGER.error("Unable to create session", e);

}

Page 11: SonarQube for AEM
Page 12: SonarQube for AEM

ResourceResolver resourceResolver = null;try {

resourceResolver = factory.getServiceResourceResolver(null);

// do stuff} catch (LoginException e) {

LOGGER.error("Unable to get service ResourceResolver.", e);

} finally {if (resourceResolver != null) {

resourceResolver.close();}

}

ResourceResolver resourceResolver = null;try {

resourceResolver = factory.getServiceResourceResolver(null);

// do stuff} catch (LoginException e) {

LOGGER.error("Unable to get service ResourceResolver.", e);

}

Page 13: SonarQube for AEM
Page 14: SonarQube for AEM

InjectorWithContext injector = null;try {

injector = InjectorUtil.getInjector(INJECTOR, resourceResolver)ModelProvider modelProvider = injector.getInstance(ModelProvider.class);// do stuff

} finally {if (injector != null) {

injector.close();}

}

InjectorWithContext injector = injector = InjectorUtil.getInjector(INJECTOR, resourceResolver)ModelProvider modelProvider = injector.getInstance(ModelProvider.class);// do stuff

Page 15: SonarQube for AEM
Page 16: SonarQube for AEM

try (InjectorWithContext injector = InjectorUtil.getInjector(INJECTOR, resourceResolver)) {ModelProvider modelProvider = injector.getInstance(ModelProvider.class);// do stuff

}

InjectorWithContext injector = null;try {

injector = InjectorUtil.getInjector(INJECTOR, resourceResolver)ModelProvider modelProvider = injector.getInstance(ModelProvider.class);// do stuff

} finally {if (injector != null) {

injector.close();}

}

Page 17: SonarQube for AEM
Page 18: SonarQube for AEM
Page 19: SonarQube for AEM

@Component@Service(value = javax.servlet.Servlet.class)@Properties({ @Property(name = "sling.servlet.resourceTypes", value = { "sling/servlet/default" }),

@Property(name = "sling.servlet.selectors", value = { "selector" }),@Property(name = "sling.servlet.extensions", value = { "tab" }),@Property(name = "sling.servlet.methods", value = { HttpConstants.METHOD_GET }) })

@SlingServlet(resourceTypes = "sling/servlet/default",selectors = "selector",extensions = "tab",methods = HttpConstants.METHOD_GET

)

Page 20: SonarQube for AEM

@SlingServlet(methods = "GET")@Properties({

@Property(name = Constants.SERVICE_VENDOR, value = "Cognifide"),@Property(name = Constants.SERVICE_DESCRIPTION, value = "Some description"),@Property(name = "sling.servlet.selectors", value = "selector"),@Property(name = "sling.servlet.extensions", value = "tab"),@Property(name = "sling.servlet.resourceTypes", value = { "sling/servlet/default" })

})

@SlingServlet(resourceTypes = "sling/servlet/default", selectors = "selector",extensions = "tab", methods = HttpConstants.METHOD_GET

)@Properties({

@Property(name = Constants.SERVICE_VENDOR, value = "Cognifide"),@Property(name = Constants.SERVICE_DESCRIPTION, value = "Some description")

})

Page 21: SonarQube for AEM

@SlingServlet(resourceTypes = "sling/servlet/default", selectors = "selector",extensions = "tab", methods = HttpConstants.METHOD_GET

)

@Service@Component@SlingServlet(

resourceTypes = "sling/servlet/default", selectors = "selector",extensions = "tab", methods = HttpConstants.METHOD_GET

)

Page 22: SonarQube for AEM
Page 23: SonarQube for AEM

private boolean isVisible(NavigationNode<Page> item) {ValueMap valueMap = item.getData().getContentResource().adaptTo(ValueMap.class);String template = valueMap.get("cq:template", String.class);boolean hideInNav = BooleanUtils.toBoolean(valueMap.get("hideInNav", String.class));return !hideInNav && template.equals(PAGE_TEMPLATE);

}

private boolean isVisible(NavigationNode<Page> item) {ValueMap valueMap = item.getData().getContentResource().adaptTo(ValueMap.class);String template = valueMap.get(NameConstants.NN_TEMPLATE, String.class);boolean hideInNav = BooleanUtils.toBoolean(valueMap.get(NameConstants.PN_HIDE_IN_NAV,

String.class));return !hideInNav && template.equals(PAGE_TEMPLATE);

}

Page 24: SonarQube for AEM
Page 25: SonarQube for AEM

@Properties({@Property(name = EventConstants.EVENT_FILTER, value = "(path=/content/*)"),@Property(name = EventConstants.EVENT_TOPIC, value = {

SlingConstants.TOPIC_RESOURCE_ADDED,SlingConstants.TOPIC_RESOURCE_CHANGED, SlingConstants.TOPIC_RESOURCE_REMOVED

}) })

@Properties({@Property(name = "event.filter", value = "(path=/content/*)"),@Property(name = "event.topics", value = {

"org/apache/sling/api/resource/Resource/ADDED","org/apache/sling/api/resource/Resource/CHANGED","org/apache/sling/api/resource/Resource/REMOVED"

}) })

Page 26: SonarQube for AEM

DamConstants.DC_TITLE = "dc:title"

@Deprecated "filter.scope" "sling.filter.scope"

SlingPostConstants.RD_NODE_NAME

Page 27: SonarQube for AEM
Page 28: SonarQube for AEM
Page 29: SonarQube for AEM

private Session session;

@Overrideprotected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response)

throws ServletException, IOException {session = request.getResourceResolver().adaptTo(Session.class);String removeParam = request.getRequestParameter(REMOVE).getString();if (ALL.equals(removeParam)) {

removeAllPagesCreatedByCurrentAuthor();} else if (OLD.equals(removeParam)) {

removeOldPagesCreatedByCurrentAuthor();}

}

Page 30: SonarQube for AEM

github.com/Cognifide/AEM-Rules-for-SonarQubecognifide.github.io

sonarqube/extensions/plugins

clean install sonar:sonar

Page 31: SonarQube for AEM
Page 32: SonarQube for AEM
Page 33: SonarQube for AEM
Page 34: SonarQube for AEM