Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions group09/41689722.eulerlcs/2.code/jmr-01-aggregator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
<module>../jmr-11-challenge</module>
<module>../jmr-61-170226-collection</module>
<module>../jmr-61-170305-litestruts</module>
<module>../jmr-61-170312-multiThreadDownload</module>
</modules>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<app-config>
<input-path>a</input-path>
<input-look-subfolder>b</input-look-subfolder>
<input-encode>c</input-encode>
<output-path>d</output-path>
<output-by-package-tree>e</output-by-package-tree>
<output-prefix>f</output-prefix>
<output-subfix>g</output-subfix>
<output-encode>h</output-encode>
<output-package-name>i</output-package-name>
</app-config>

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.github.eulerlcs.jmr.challenge.xmlparser.jaxb;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import lombok.Getter;

@Getter
@XmlRootElement(name = "app-config")
public class AppConfig {
@XmlElement(name = "input-path")
private String inputPath;
@XmlElement(name = "input-look-subfolder")
private boolean inputLookSubfolder;
@XmlElement(name = "input-encode")
private String inputEncode;
@XmlElement(name = "output-path")
private String outputPath;
@XmlElement(name = "output-by-package-tree")
private boolean outputByPackageTree;
@XmlElement(name = "output-prefix")
private String outputPrefix;
@XmlElement(name = "output-subfix")
private String outputSubfix;
@XmlElement(name = "output-encode")
private String outputEncode;
@XmlElement(name = "output-package-name")
private String outputPackageName;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.github.eulerlcs.jmr.challenge.xmlparser.jaxb;

import java.io.File;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Driver {
private final static Logger log = LoggerFactory.getLogger(Driver.class);

public static void main(String[] args) {
File xml = new File("data//xmlparser", "hello.xml");
Hello hello = JaxbParser.loadAppConfig(xml, Hello.class);
log.debug("hello.value=[{}]", hello.getValue());

xml = new File("data//xmlparser", "app-config.xml");
AppConfig appConfig = JaxbParser.loadAppConfig(xml, AppConfig.class);
log.debug("process-args.InputPath=[{}] ", appConfig.getInputPath());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.github.eulerlcs.jmr.challenge.xmlparser.jaxb;

import java.util.List;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import com.github.eulerlcs.jmr.challenge.xmlparser.digester.entity.HelloFile;

import lombok.Getter;

@Getter
@XmlRootElement(name = "files")
public class Hello {
@XmlAttribute
private String project;
@XmlAttribute
private String value;
@XmlElement(name = "file")
private List<HelloFile> files;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.github.eulerlcs.jmr.challenge.xmlparser.jaxb;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlValue;

import lombok.Getter;

@Getter
public class HelloFile {
@XmlAttribute(name = "dir")
private String path;
@XmlValue
private String name;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.github.eulerlcs.jmr.challenge.xmlparser.jaxb;

import java.io.File;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;

/* jaxb: Java Architecture for XML Binding */
public class JaxbParser {
@SuppressWarnings("unchecked")
public static <E> E loadAppConfig(File xml, Class<E> clazz) {
E entity = null;
try {
JAXBContext jc = JAXBContext.newInstance(clazz);
Unmarshaller u = jc.createUnmarshaller();
entity = (E) u.unmarshal(xml);
} catch (Exception e) {
e.printStackTrace();
}
return entity;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.github.eulerlcs.jmr.challenge.xmlparser.sax;

import java.io.File;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

public class Driver {
public static void main(String[] args) {
SAXParserFactory factory = SAXParserFactory.newInstance();
File xml = new File("data//xmlparser", "hello.xml");
try {
SAXParser parser = factory.newSAXParser();
parser.parse(xml, new HelloSaxParser());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.github.eulerlcs.jmr.challenge.xmlparser.sax;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/* sax: simple api for xml */
public class HelloSaxParser extends DefaultHandler {
protected static Logger log = LoggerFactory.getLogger(HelloSaxParser.class);

@Override
public void startDocument() throws SAXException {
super.startDocument();
log.debug("sax startDocument");
}

@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
log.debug("sax startElement qName: [{}]", qName);
}

@Override
public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
log.debug("sax characters: [{}]", new String(ch, start, length));
}

@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
log.debug("sax endElement qName: [{}]", qName);
}

@Override
public void endDocument() throws SAXException {
super.endDocument();
log.debug("sax endDocument");
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<struts>
<action name="login" class="com.coderising.action.LoginAction">
<action name="login" class="com.github.eulerlcs.jmr.litestruts.action.LoginAction">
<result name="success">/jsp/homepage.jsp</result>
<result name="fail">/jsp/showLogin.jsp</result>
</action>
<action name="logout" class="com.coderising.action.LogoutAction">
<action name="logout" class="com.github.eulerlcs.jmr.litestruts.action.LogoutAction">
<result name="success">/jsp/welcome.jsp</result>
<result name="error">/jsp/error.jsp</result>
</action>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.github.eulerlcs.jmr.litestruts.action;

import lombok.Getter;
import lombok.Setter;

/**
* 这是一个用来展示登录的业务类, 其中的用户名和密码都是硬编码的。
*
* @author liuxin
*
*/
public class LoginAction {
@Setter
@Getter
private String name;
@Setter
@Getter
private String password;
@Getter
private String message;

public String execute() {
if ("test".equals(name) && "1234".equals(password)) {
this.message = "login successful";
return "success";
}
this.message = "login failed,please check your user/pwd";
return "fail";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.github.eulerlcs.jmr.litestruts.action;

import lombok.Getter;
import lombok.Setter;

/**
* 这是一个用来展示登录的业务类, 其中的用户名和密码都是硬编码的。
*
* @author liuxin
*
*/
public class LogoutAction {
@Setter
@Getter
private String name;
@Setter
@Getter
private String password;
@Getter
private String message;

public String execute() {
if ("test".equals(name) && "1234".equals(password)) {
this.message = "login successful";
return "success";
}
this.message = "login failed,please check your user/pwd";
return "error";
}
}
Loading