From 28a6fb5c36d3f20ea2f63c29dd4d4b7a31add7ff Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Wed, 4 Jan 2017 10:27:23 +0100 Subject: [PATCH] Fetching sul web ProvinciaCrawler completato --- .../.settings/org.eclipse.jdt.core.prefs | 98 +++++++++++++++++++ .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.ws.service.policy.prefs | 2 + NoahCrawler/pom.xml | 10 ++ .../it/noah/crawler/annotation/Column.java | 14 --- .../crawler/annotation/NoahCrawlerModel.java | 12 --- .../it/noah/crawler/annotation/Transiet.java | 12 --- .../converter/impl/ProvinciaConverter.java | 29 ++++-- .../src/it/noah/crawler/dom/tag/Table.java | 6 +- .../crawler/dom/tag/builder/TableBuilder.java | 23 +++-- .../dom/tag/builder/TableHeaderBuilder.java | 15 ++- .../dom/tag/builder/TableRowBuilder.java | 29 ++++-- .../crawler/impl/ProvinciaNoahCrawler.java | 20 ++-- .../src/it/noah/crawler/model/Comune.java | 18 +--- .../src/it/noah/crawler/model/Provincia.java | 19 +--- .../crawler/servlet/NoahCrawlerServlet.java | 94 ++++++++++++++++++ 16 files changed, 297 insertions(+), 106 deletions(-) create mode 100644 NoahCrawler/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 NoahCrawler/.settings/org.eclipse.wst.ws.service.policy.prefs delete mode 100644 NoahCrawler/src/it/noah/crawler/annotation/Column.java delete mode 100644 NoahCrawler/src/it/noah/crawler/annotation/NoahCrawlerModel.java delete mode 100644 NoahCrawler/src/it/noah/crawler/annotation/Transiet.java create mode 100644 NoahCrawler/src/it/noah/crawler/servlet/NoahCrawlerServlet.java diff --git a/NoahCrawler/.settings/org.eclipse.jdt.core.prefs b/NoahCrawler/.settings/org.eclipse.jdt.core.prefs index 1ab2bb5..12af65f 100644 --- a/NoahCrawler/.settings/org.eclipse.jdt.core.prefs +++ b/NoahCrawler/.settings/org.eclipse.jdt.core.prefs @@ -1,8 +1,106 @@ eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.8 diff --git a/NoahCrawler/.settings/org.eclipse.m2e.wtp.prefs b/NoahCrawler/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 0000000..0492759 --- /dev/null +++ b/NoahCrawler/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/NoahCrawler/.settings/org.eclipse.wst.ws.service.policy.prefs b/NoahCrawler/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 0000000..6da2f3d --- /dev/null +++ b/NoahCrawler/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/NoahCrawler/pom.xml b/NoahCrawler/pom.xml index 2b26b44..b9e1de3 100644 --- a/NoahCrawler/pom.xml +++ b/NoahCrawler/pom.xml @@ -30,5 +30,15 @@ jsoup 1.10.1 + + org.slf4j + slf4j-api + 1.7.22 + + + org.slf4j + slf4j-simple + 1.7.22 + \ No newline at end of file diff --git a/NoahCrawler/src/it/noah/crawler/annotation/Column.java b/NoahCrawler/src/it/noah/crawler/annotation/Column.java deleted file mode 100644 index 3254dd3..0000000 --- a/NoahCrawler/src/it/noah/crawler/annotation/Column.java +++ /dev/null @@ -1,14 +0,0 @@ -package it.noah.crawler.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -public @interface Column { - - public String name(); - -} diff --git a/NoahCrawler/src/it/noah/crawler/annotation/NoahCrawlerModel.java b/NoahCrawler/src/it/noah/crawler/annotation/NoahCrawlerModel.java deleted file mode 100644 index ce444e7..0000000 --- a/NoahCrawler/src/it/noah/crawler/annotation/NoahCrawlerModel.java +++ /dev/null @@ -1,12 +0,0 @@ -package it.noah.crawler.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -public @interface NoahCrawlerModel { - -} diff --git a/NoahCrawler/src/it/noah/crawler/annotation/Transiet.java b/NoahCrawler/src/it/noah/crawler/annotation/Transiet.java deleted file mode 100644 index d9bdb67..0000000 --- a/NoahCrawler/src/it/noah/crawler/annotation/Transiet.java +++ /dev/null @@ -1,12 +0,0 @@ -package it.noah.crawler.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -public @interface Transiet { - -} diff --git a/NoahCrawler/src/it/noah/crawler/converter/impl/ProvinciaConverter.java b/NoahCrawler/src/it/noah/crawler/converter/impl/ProvinciaConverter.java index 5e90dbc..38447b5 100644 --- a/NoahCrawler/src/it/noah/crawler/converter/impl/ProvinciaConverter.java +++ b/NoahCrawler/src/it/noah/crawler/converter/impl/ProvinciaConverter.java @@ -3,9 +3,10 @@ package it.noah.crawler.converter.impl; import java.util.ArrayList; import java.util.List; -import it.noah.crawler.annotation.Column; import it.noah.crawler.converter.Converter; +import it.noah.crawler.dom.tag.Cell; import it.noah.crawler.dom.tag.Table; +import it.noah.crawler.dom.tag.TableRow; import it.noah.crawler.model.Provincia; public class ProvinciaConverter implements Converter { @@ -13,14 +14,30 @@ public class ProvinciaConverter implements Converter { @Override public List convertTable(Table table) { List province = new ArrayList(); - int j = 0; - for (int i = 0; i < table.columns(); i++) { - Provincia provincia = new Provincia(); - Column annotations = provincia.getClass() - .getAnnotation(Column.class); + for (TableRow row : table.getRows()) { + Provincia provincia = getProvincia(row); province.add(provincia); } return province; } + private Provincia getProvincia(TableRow row) { + Provincia provincia = new Provincia(); + for (int i = 0; i < row.getRow().size(); i++) { + Cell cell = row.getRow().get(i); + switch (i) { + case 0: + provincia.setSigla(cell.getValue()); + break; + case 1: + provincia.setNome(cell.getValue()); + break; + case 2: + provincia.setRegione(cell.getValue()); + break; + } + } + return provincia; + } + } diff --git a/NoahCrawler/src/it/noah/crawler/dom/tag/Table.java b/NoahCrawler/src/it/noah/crawler/dom/tag/Table.java index 20e1654..0c9638e 100644 --- a/NoahCrawler/src/it/noah/crawler/dom/tag/Table.java +++ b/NoahCrawler/src/it/noah/crawler/dom/tag/Table.java @@ -6,10 +6,6 @@ public class Table { private TableHeader header; private List rows; - public Table() { - header = new TableHeader(); - } - public void setHeader(TableHeader header) { this.header = header; } @@ -27,7 +23,7 @@ public class Table { } public int columns() { - return header.size(); + return header != null ? header.size() : 0; } } diff --git a/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableBuilder.java b/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableBuilder.java index dd4e7c7..9c14af3 100644 --- a/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableBuilder.java +++ b/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableBuilder.java @@ -1,25 +1,30 @@ package it.noah.crawler.dom.tag.builder; -import it.noah.crawler.dom.tag.Table; +import java.util.List; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; +import it.noah.crawler.dom.tag.Table; +import it.noah.crawler.dom.tag.TableHeader; +import it.noah.crawler.dom.tag.TableRow; + public class TableBuilder { public Table build(Element element, boolean headerFlag) { Table table = new Table(); - Elements elements = element.select("tr"); + Elements rows = element.select("tr"); Element header; if (headerFlag) { - header = elements.select("tr").first(); - header.remove(); - TableHeaderBuilder thb = new TableHeaderBuilder(); - table.setHeader(thb.build(header)); + header = rows.first(); + rows.remove(header); + TableHeaderBuilder tableHeaderBuilder = new TableHeaderBuilder(); + TableHeader tableHeader = tableHeaderBuilder.build(header); + table.setHeader(tableHeader); } - Elements rows = elements.select("tr"); - TableRowBuilder thr = new TableRowBuilder(); - // table.setBody(thr.build(rows)); TODO + TableRowBuilder tableRowBuilder = new TableRowBuilder(); + List tableRows = tableRowBuilder.build(rows); + table.setRows(tableRows); return table; } diff --git a/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableHeaderBuilder.java b/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableHeaderBuilder.java index ddf11ca..d812e74 100644 --- a/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableHeaderBuilder.java +++ b/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableHeaderBuilder.java @@ -1,12 +1,21 @@ package it.noah.crawler.dom.tag.builder; -import it.noah.crawler.dom.tag.TableHeader; - import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + +import it.noah.crawler.dom.tag.Cell; +import it.noah.crawler.dom.tag.TableHeader; public class TableHeaderBuilder { public TableHeader build(Element element) { - return null; + TableHeader tableHeader = new TableHeader(); + Elements tableDatas = element.getElementsByTag("th"); + for (Element tableData : tableDatas) { + Cell data = new Cell(); + data.setValue(tableData.text()); + tableHeader.addColumn(data); + } + return tableHeader; } } diff --git a/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableRowBuilder.java b/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableRowBuilder.java index 4054f4b..6bad926 100644 --- a/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableRowBuilder.java +++ b/NoahCrawler/src/it/noah/crawler/dom/tag/builder/TableRowBuilder.java @@ -1,22 +1,31 @@ package it.noah.crawler.dom.tag.builder; -import it.noah.crawler.dom.tag.Cell; -import it.noah.crawler.dom.tag.TableRow; +import java.util.ArrayList; +import java.util.List; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; +import it.noah.crawler.dom.tag.Cell; +import it.noah.crawler.dom.tag.TableRow; + public class TableRowBuilder { - public TableRow build(Elements rows) { - TableRow tableRow = new TableRow(); - for (Element row : rows) { - Elements tds = row.select("td"); - Cell cell = new Cell(); - cell.setValue(tds.text()); - // tableRow.addColumn(cell); TODO + public List build(Elements htmlRows) { + List rows = new ArrayList(); + for (Element htmlRow : htmlRows) { + TableRow tableRow = new TableRow(); + List row = new ArrayList(); + Elements tds = htmlRow.select("td"); + for (Element tableData : tds) { + Cell cell = new Cell(); + cell.setValue(tableData.text()); + row.add(cell); + } + tableRow.addRow(row); + rows.add(tableRow); } - return tableRow; + return rows; } } diff --git a/NoahCrawler/src/it/noah/crawler/impl/ProvinciaNoahCrawler.java b/NoahCrawler/src/it/noah/crawler/impl/ProvinciaNoahCrawler.java index 5e64a9b..d0dd9aa 100644 --- a/NoahCrawler/src/it/noah/crawler/impl/ProvinciaNoahCrawler.java +++ b/NoahCrawler/src/it/noah/crawler/impl/ProvinciaNoahCrawler.java @@ -1,5 +1,11 @@ package it.noah.crawler.impl; +import java.io.IOException; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import it.noah.crawler.AbstractNoahCrawler; import it.noah.crawler.NoahCrawler; import it.noah.crawler.converter.impl.ProvinciaConverter; @@ -9,11 +15,11 @@ import it.noah.crawler.exception.NoahCrawlerException; import it.noah.crawler.exception.ObjectNotFoundException; import it.noah.crawler.model.Provincia; -import java.io.IOException; -import java.util.List; +public class ProvinciaNoahCrawler extends AbstractNoahCrawler + implements NoahCrawler { -public class ProvinciaNoahCrawler extends AbstractNoahCrawler implements - NoahCrawler { + private final static Logger log = LoggerFactory + .getLogger(ProvinciaNoahCrawler.class); public ProvinciaNoahCrawler() throws IOException { super(UrlEnum.PROVINCE_URL.getUrl()); @@ -22,10 +28,12 @@ public class ProvinciaNoahCrawler extends AbstractNoahCrawler implements @Override public void run() throws NoahCrawlerException { try { - List province = convertTable2Provincia(getTable("", true)); + List province = convertTable2Provincia( + getTable("", true)); + log.debug("Provincia convertita con successo!!!"); // TODO una volta creata la lista va salvata sul db } catch (ObjectNotFoundException e) { - e.printStackTrace(); + log.error(e.getMessage()); } } diff --git a/NoahCrawler/src/it/noah/crawler/model/Comune.java b/NoahCrawler/src/it/noah/crawler/model/Comune.java index d5b6d80..0158336 100644 --- a/NoahCrawler/src/it/noah/crawler/model/Comune.java +++ b/NoahCrawler/src/it/noah/crawler/model/Comune.java @@ -1,25 +1,15 @@ package it.noah.crawler.model; -import it.noah.crawler.annotation.Column; -import it.noah.crawler.annotation.NoahCrawlerModel; -import it.noah.crawler.annotation.Transiet; +import java.io.Serializable; -@NoahCrawlerModel -public class Comune { +public class Comune implements Serializable { + + private static final long serialVersionUID = -2171167117875954706L; - @Transiet private Long id; - - @Column(name = "") private String nome; - - @Column(name = "") private String cap; - - @Column(name = "") private Provincia provincia; - - @Column(name = "") private String regione; public void setId(Long id) { diff --git a/NoahCrawler/src/it/noah/crawler/model/Provincia.java b/NoahCrawler/src/it/noah/crawler/model/Provincia.java index a447d53..0978445 100644 --- a/NoahCrawler/src/it/noah/crawler/model/Provincia.java +++ b/NoahCrawler/src/it/noah/crawler/model/Provincia.java @@ -1,27 +1,16 @@ package it.noah.crawler.model; -import it.noah.crawler.annotation.Column; -import it.noah.crawler.annotation.NoahCrawlerModel; -import it.noah.crawler.annotation.Transiet; - +import java.io.Serializable; import java.util.List; -@NoahCrawlerModel -public class Provincia { +public class Provincia implements Serializable { + + private static final long serialVersionUID = 106451135158559443L; - @Transiet private Long id; - - @Column(name = "Provincia") private String nome; - - @Column(name = "Sigla") private String sigla; - - @Column(name = "Regione") private String regione; - - @Transiet private List comuni; public void setId(Long id) { diff --git a/NoahCrawler/src/it/noah/crawler/servlet/NoahCrawlerServlet.java b/NoahCrawler/src/it/noah/crawler/servlet/NoahCrawlerServlet.java new file mode 100644 index 0000000..7f822d8 --- /dev/null +++ b/NoahCrawler/src/it/noah/crawler/servlet/NoahCrawlerServlet.java @@ -0,0 +1,94 @@ +package it.noah.crawler.servlet; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import it.noah.crawler.enums.CrawlerEnum; +import it.noah.crawler.exception.NoahCrawlerException; +import it.noah.crawler.factory.NoahCrawlerFactory; + +/** + * Servlet implementation class NoahCrawlerServlet + */ +@WebServlet("/noahCrawling") +public class NoahCrawlerServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + private final static Logger log = LoggerFactory + .getLogger(NoahCrawlerServlet.class); + + /** + * @see HttpServlet#HttpServlet() + */ + public NoahCrawlerServlet() { + super(); + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse + * response) + */ + @Override + protected void doGet(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { + handleRequest(request, response); + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse + * response) + */ + @Override + protected void doPost(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { + handleRequest(request, response); + } + + private void handleRequest(HttpServletRequest request, + HttpServletResponse response) throws IOException { + String param = request.getParameter("job"); + PrintWriter out = response.getWriter(); + + try { + if (param == null) { + log.warn("ATTENZIONE!!! Stanno partendo tutti i crawler"); + runAllCrawler(); + } + + if (CrawlerEnum.PROVINCIA_CRAWLER.name().equalsIgnoreCase(param)) { + runCrawler(CrawlerEnum.PROVINCIA_CRAWLER); + } else if (CrawlerEnum.COMUNE_CRAWLER.name() + .equalsIgnoreCase(param)) { + runCrawler(CrawlerEnum.COMUNE_CRAWLER); + } else if ("allCrawler".equalsIgnoreCase(param)) { + runAllCrawler(); + } + } catch (NoahCrawlerException | IOException e) { + log.error("[ERRORE] " + e.getMessage()); + out.println("[ERRORE] " + e.getMessage()); + } + + out.println("

Job eseguito con successo!!!

"); + } + + private void runAllCrawler() throws NoahCrawlerException, IOException { + for (CrawlerEnum crawlerEnum : CrawlerEnum.values()) { + runCrawler(crawlerEnum); + } + } + + private void runCrawler(CrawlerEnum crawlerEnum) + throws NoahCrawlerException, IOException { + NoahCrawlerFactory.getInstance(crawlerEnum).run(); + } + +}