diff --git a/src/com/mcplusa/google/feeder/GSAFeed.java b/src/com/mcplusa/google/feeder/GSAFeed.java deleted file mode 100644 index 64f8103..0000000 --- a/src/com/mcplusa/google/feeder/GSAFeed.java +++ /dev/null @@ -1,222 +0,0 @@ -package com.mcplusa.google.feeder; - -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.apache.log4j.Logger; - -import javax.xml.transform.*; -import org.w3c.dom.*; -import org.apache.xml.serialize.XMLSerializer; - -import com.mcplusa.google.feeder.constants.ConnectorConstants; -import org.xml.sax.SAXException; - -/** - * - * @author mbcizmar - */ -public class GSAFeed { - - protected Logger logger; - protected Document doc; - protected Node root; - protected Node groupNode; //node containing all resord nodes (content) - protected String feederFolder = ""; - protected String dataSource = ""; - protected String feederType = ""; - protected int count = 0; - - public int getCount() { - return count; - } - - public void setCount(int newCount) { - count = newCount; - } - - public String getDataSource() { - return dataSource; - } - - public void setDataSource(String newDataSource) { - dataSource = newDataSource; - } - - public void setLogger(Logger newLogger) { - logger = newLogger; - } - - public GSAFeed() { - doc = FeederUtil.createDocument(); - } - - public GSAFeed(Logger newLogger, String xmlFileFolder, String newFeedType) { - logger = newLogger; - feederFolder = xmlFileFolder; - feederType = newFeedType; - doc = FeederUtil.createDocument(); - - logger.info("Feed temp folder will be: " + xmlFileFolder); - } - - public void BuildHeader() throws SAXException, IOException { - logger.info("Starting BuildHeader"); - try { - - //Element header = doc.createElement(ConnectorConstants.FEEDER_HEADER); - - root = doc.createElement(ConnectorConstants.FEEDER_GSAFEED); - doc.appendChild(root); - Element header = doc.createElement("header"); - Element dataSourceElement = doc.createElement(ConnectorConstants.FEEDER_DS); - dataSourceElement.appendChild(doc.createTextNode(dataSource)); - header.appendChild(dataSourceElement); - - Element feedTypeElement = doc.createElement(ConnectorConstants.FEEDER_TYPE); - feedTypeElement.appendChild(doc.createTextNode(feederType)); - header.appendChild(feedTypeElement); - root.appendChild(header); - - - //Create group element - groupNode = doc.createElement(ConnectorConstants.FEEDER_GROUP); - root.appendChild(groupNode); - - } catch (Exception ex) { - // Parser with specified options can't be built - logger.error("Exception in BuildHeader"); - logger.error(ex.getMessage()); - } - logger.info("Ending BuildHeader"); - return; - } - - public final String WriteXMLToFile(String gsa) { - logger.info("Starting WriteXmlToFile"); - Date now = new Date(); - SimpleDateFormat sd = new SimpleDateFormat("yyyy_mm_dd_hh_ss"); - - String timestamp = sd.format(now); - - String filename = this.dataSource + "_" + timestamp + ".xml"; - try { - if (feederFolder.length() > 0) { - if (feederFolder.endsWith("\\")) { - filename = feederFolder + filename; - } else { - filename = feederFolder + "\\" + filename; - } - } else { - //do nothing there was no specified folder - } - // use specific Xerces class to write DOM-data to a file: - XMLSerializer serializer = new XMLSerializer(); - Transformer transformer = FeederUtil.createTransformer(gsa); - FeederUtil.writeToFile(transformer, doc, filename); - - - } catch (Throwable ex) { - logger.error("Error GSAFeed.WriteXMLToFile()", ex); - } - logger.info("File written to: " + filename + " successfully."); - logger.info("Ending WriteXmlToFile"); - return filename; - } - - public void DeleteRecord(String url) { - try { - Element recordNode = doc.createElement("record"); - recordNode.setAttribute("url", url); - recordNode.setAttribute("action", "delete"); - - //insert recordNode into GroupNode - groupNode.appendChild(recordNode); - //insert groupNode into document - count++; - } catch (Exception ex) { - logger.error("Error XmlGSAFeed.DeleteRecord()", ex); - - } - } - - public void AddRecord(GSAContentItem item) { - Element recordNode = doc.createElement("record"); - recordNode.setAttribute("url", item.getUrl()); - if (item.display_url.length() > 0) { - recordNode.setAttribute("displayurl", item.display_url); - } - recordNode.setAttribute("mimetype", item.getMimeType()); - if (item.getHasLastModified()) { - recordNode.setAttribute("last-modified", item.getLastModifiedUTC()); - } - - recordNode.setAttribute("authmethod", item.getAuthMethod()); - if (item.getAcl() != null) { - this.AddACL(item.getAcl(), recordNode, true); - } - if (item.metaData.size() > 0) { - Element metaData = doc.createElement("metadata"); - GSAMetaDataItem metaItem; - for (int i = 0; i < item.getMetadata().size(); i++) { - metaItem = (GSAMetaDataItem) item.getMetadata().get(i); - if ((metaItem.getName().length() > 0) && (metaItem.getContent() != null)) { - Element meta = doc.createElement("meta"); - meta.setAttribute("name", metaItem.getName()); - meta.setAttribute("content", metaItem.getContent()); - metaData.appendChild(meta); - } - } - recordNode.appendChild(metaData); - - } - - if (item.content.length() > 0) { - //assume content feed and add the current node - Element content = doc.createElement("content"); - if (item.getBase64()) { - content.setAttribute("encoding", "base64binary"); - } - content.setTextContent(item.getContent()); - recordNode.appendChild(content); - } - - groupNode.appendChild(recordNode); - count++; - - } - - public void AddACL(GSAACLItem item) { - this.AddACL(item, groupNode, false); - } - - private void AddACL(GSAACLItem item, Node aclContainer, boolean aclInsideRecord) { - Element aclNode = doc.createElement("acl"); - if (!aclInsideRecord) { - aclNode.setAttribute("url", item.getUrl()); - } - - if (item.getInheritanceType() != null) { - aclNode.setAttribute("inheritance-type", item.getInheritanceType().getValue()); - } - - if (item.getInheritFrom() != null && item.getInheritFrom().trim().length() != 0) { - aclNode.setAttribute("inherit-from", item.getInheritFrom()); - } - - if (item.getPrincipals().size() > 0) { - for (GSAACLPrincipal principalItem : item.getPrincipals()) { - Element principal = doc.createElement("principal"); - principal.setAttribute("namespace", principalItem.getNamespace()); - principal.setAttribute("case-sensitivity-type", principalItem.getCaseSensitivityType().getValue()); - principal.setAttribute("scope", principalItem.getScope().getValue()); - principal.setAttribute("access", principalItem.getAccess().getValue()); - principal.appendChild(doc.createTextNode(principalItem.getContent())); - aclNode.appendChild(principal); - } - } - - aclContainer.appendChild(aclNode); - } -} diff --git a/src/com/mcplusa/google/feeder/FeederUtil.java b/src/main/java/com/mcplusa/google/feeder/FeederUtil.java similarity index 100% rename from src/com/mcplusa/google/feeder/FeederUtil.java rename to src/main/java/com/mcplusa/google/feeder/FeederUtil.java diff --git a/src/com/mcplusa/google/feeder/GSAACLItem.java b/src/main/java/com/mcplusa/google/feeder/GSAACLItem.java similarity index 100% rename from src/com/mcplusa/google/feeder/GSAACLItem.java rename to src/main/java/com/mcplusa/google/feeder/GSAACLItem.java diff --git a/src/com/mcplusa/google/feeder/GSAACLPrincipal.java b/src/main/java/com/mcplusa/google/feeder/GSAACLPrincipal.java similarity index 81% rename from src/com/mcplusa/google/feeder/GSAACLPrincipal.java rename to src/main/java/com/mcplusa/google/feeder/GSAACLPrincipal.java index 303443a..904b726 100644 --- a/src/com/mcplusa/google/feeder/GSAACLPrincipal.java +++ b/src/main/java/com/mcplusa/google/feeder/GSAACLPrincipal.java @@ -10,11 +10,10 @@ public class GSAACLPrincipal { private ACLPrincipalScope scope; private ACLPrincipalAccess access; private String content; - + public String getNamespace() { return namespace; } - public void setNamespace(String namespace) { this.namespace = namespace; } @@ -22,15 +21,20 @@ public void setNamespace(String namespace) { public ACLCaseSensitivityType getCaseSensitivityType() { return caseSensitivityType; } - public void setCaseSensitivityType(ACLCaseSensitivityType caseSensitivityType) { this.caseSensitivityType = caseSensitivityType; } + public void setCaseSensitivity(boolean sensitive) { + if (sensitive) { + this.setCaseSensitivityType(ACLCaseSensitivityType.ACL_PRINCIPAL_CASE_SENSITIVE); + } else { + this.setCaseSensitivityType(ACLCaseSensitivityType.ACL_PRINCIPAL_CASE_INSENSITIVE); + } + } public ACLPrincipalScope getScope() { return scope; } - public void setScope(ACLPrincipalScope scope) { this.scope = scope; } @@ -38,7 +42,6 @@ public void setScope(ACLPrincipalScope scope) { public ACLPrincipalAccess getAccess() { return access; } - public void setAccess(ACLPrincipalAccess access) { this.access = access; } @@ -46,7 +49,6 @@ public void setAccess(ACLPrincipalAccess access) { public String getContent() { return content; } - public void setContent(String content) { this.content = content; } diff --git a/src/com/mcplusa/google/feeder/GSAContentItem.java b/src/main/java/com/mcplusa/google/feeder/GSAContentItem.java similarity index 100% rename from src/com/mcplusa/google/feeder/GSAContentItem.java rename to src/main/java/com/mcplusa/google/feeder/GSAContentItem.java diff --git a/src/main/java/com/mcplusa/google/feeder/GSAFeed.java b/src/main/java/com/mcplusa/google/feeder/GSAFeed.java new file mode 100644 index 0000000..5aadf28 --- /dev/null +++ b/src/main/java/com/mcplusa/google/feeder/GSAFeed.java @@ -0,0 +1,221 @@ +package com.mcplusa.google.feeder; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.apache.log4j.Logger; + +import javax.xml.transform.*; + +import org.w3c.dom.*; +import org.apache.xml.serialize.XMLSerializer; + +import com.mcplusa.google.feeder.constants.ConnectorConstants; + +import org.xml.sax.SAXException; + + +/** + * + * @author mbcizmar + */ +public class GSAFeed { + protected Logger logger; + protected Document doc; + protected Node root; + protected Node groupNode; //node containing all record nodes (content) + protected String feederFolder = ""; + protected String dataSource = ""; + protected String feederType = ""; + protected int count = 0; + + public int getCount() { + return count; + } + + public void setCount(int newCount) { + count = newCount; + } + + public String getDataSource() { + return dataSource; + } + + public void setDataSource(String newDataSource) { + dataSource = newDataSource; + } + + public void setLogger(Logger newLogger) { + logger = newLogger; + } + + public GSAFeed() { + doc = FeederUtil.createDocument(); + } + + public GSAFeed(Logger newLogger, String xmlFileFolder, String newFeedType) { + logger = newLogger; + feederFolder = xmlFileFolder; + feederType = newFeedType; + doc = FeederUtil.createDocument(); + + logger.info("Feed temp folder will be: " + xmlFileFolder); + } + + public void BuildHeader() throws SAXException, IOException { + logger.info("Starting BuildHeader"); + try { + //Element header = doc.createElement(ConnectorConstants.FEEDER_HEADER); + + root = doc.createElement(ConnectorConstants.FEEDER_GSAFEED); + doc.appendChild(root); + Element header = doc.createElement("header"); + Element dataSourceElement = doc.createElement(ConnectorConstants.FEEDER_DS); + dataSourceElement.appendChild(doc.createTextNode(dataSource)); + header.appendChild(dataSourceElement); + + Element feedTypeElement = doc.createElement(ConnectorConstants.FEEDER_TYPE); + feedTypeElement.appendChild(doc.createTextNode(feederType)); + header.appendChild(feedTypeElement); + root.appendChild(header); + + + //Create group element + groupNode = doc.createElement(ConnectorConstants.FEEDER_GROUP); + root.appendChild(groupNode); + + } catch (Exception ex) { + // Parser with specified options can't be built + logger.error("Exception in BuildHeader"); + logger.error(ex.getMessage()); + } + logger.info("Ending BuildHeader"); + return; + } + + public final String WriteXMLToFile(String gsa) { + logger.info("Starting WriteXmlToFile"); + Date now = new Date(); + SimpleDateFormat sd = new SimpleDateFormat("yyyy_mm_dd_hh_ss"); + + String timestamp = sd.format(now); + + String filename = this.dataSource + "_" + timestamp + ".xml"; + try { + if (feederFolder.length() > 0) { + if (feederFolder.endsWith("\\")) { + filename = feederFolder + filename; + } else { + filename = feederFolder + "\\" + filename; + } + } else { + //do nothing there was no specified folder + } + // use specific Xerces class to write DOM-data to a file: + XMLSerializer serializer = new XMLSerializer(); + Transformer transformer = FeederUtil.createTransformer(gsa); + FeederUtil.writeToFile(transformer, doc, filename); + + } catch (Throwable ex) { + logger.error("Error GSAFeed.WriteXMLToFile()", ex); + } + logger.info("File written to: " + filename + " successfully."); + logger.info("Ending WriteXmlToFile"); + return filename; + } + + public void DeleteRecord(String url) { + try { + Element recordNode = doc.createElement("record"); + recordNode.setAttribute("url", url); + recordNode.setAttribute("action", "delete"); + + //insert recordNode into GroupNode + groupNode.appendChild(recordNode); + //insert groupNode into document + count++; + } catch (Exception ex) { + logger.error("Error XmlGSAFeed.DeleteRecord()", ex); + + } + } + + public void AddRecord(GSAContentItem item) { + Element recordNode = doc.createElement("record"); + recordNode.setAttribute("url", item.getUrl()); + if (item.display_url.length() > 0) { + recordNode.setAttribute("displayurl", item.display_url); + } + recordNode.setAttribute("mimetype", item.getMimeType()); + if (item.getHasLastModified()) { + recordNode.setAttribute("last-modified", item.getLastModifiedUTC()); + } + + recordNode.setAttribute("authmethod", item.getAuthMethod()); + if (item.getAcl() != null) { + this.AddACL(item.getAcl(), recordNode, true); + } + if (item.metaData.size() > 0) { + Element metaData = doc.createElement("metadata"); + GSAMetaDataItem metaItem; + for (int i = 0; i < item.getMetadata().size(); i++) { + metaItem = (GSAMetaDataItem) item.getMetadata().get(i); + if ((metaItem.getName().length() > 0) && (metaItem.getContent() != null)) { + Element meta = doc.createElement("meta"); + meta.setAttribute("name", metaItem.getName()); + meta.setAttribute("content", metaItem.getContent()); + metaData.appendChild(meta); + } + } + recordNode.appendChild(metaData); + } + + if (item.content.length() > 0) { + //assume content feed and add the current node + Element content = doc.createElement("content"); + if (item.getBase64()) { + content.setAttribute("encoding", "base64binary"); + } + content.setTextContent(item.getContent()); + recordNode.appendChild(content); + } + + groupNode.appendChild(recordNode); + count++; + + } + + public void AddACL(GSAACLItem item) { + this.AddACL(item, groupNode, false); + } + + private void AddACL(GSAACLItem item, Node aclContainer, boolean aclInsideRecord) { + Element aclNode = doc.createElement("acl"); + if (!aclInsideRecord) { + aclNode.setAttribute("url", item.getUrl()); + } + + if (item.getInheritanceType() != null) { + aclNode.setAttribute("inheritance-type", item.getInheritanceType().getValue()); + } + + if (item.getInheritFrom() != null && item.getInheritFrom().trim().length() != 0) { + aclNode.setAttribute("inherit-from", item.getInheritFrom()); + } + + if (item.getPrincipals().size() > 0) { + for (GSAACLPrincipal principalItem : item.getPrincipals()) { + Element principal = doc.createElement("principal"); + principal.setAttribute("namespace", principalItem.getNamespace()); + principal.setAttribute("case-sensitivity-type", principalItem.getCaseSensitivityType().getValue()); + principal.setAttribute("scope", principalItem.getScope().getValue()); + principal.setAttribute("access", principalItem.getAccess().getValue()); + principal.appendChild(doc.createTextNode(principalItem.getContent())); + aclNode.appendChild(principal); + } + } + aclContainer.appendChild(aclNode); + } + +} diff --git a/src/main/java/com/mcplusa/google/feeder/GSAGroupMembership.java b/src/main/java/com/mcplusa/google/feeder/GSAGroupMembership.java new file mode 100644 index 0000000..07f3d47 --- /dev/null +++ b/src/main/java/com/mcplusa/google/feeder/GSAGroupMembership.java @@ -0,0 +1,30 @@ +package com.mcplusa.google.feeder; + +import java.util.ArrayList; +import java.util.List; + +public class GSAGroupMembership { + private GSAGroupPrincipal principal; + private List members; + + public GSAGroupMembership() { + members = new ArrayList(); + } + + public GSAGroupPrincipal getPrincipal() { + return principal; + } + public void setPrincipal(GSAGroupPrincipal principal) { + this.principal = principal; + } + + public List getMembers() { + return members; + } + public void setMembers(List members) { + this.members = members; + } + public void addMember(GSAGroupPrincipal member) { + this.members.add(member); + } +} diff --git a/src/main/java/com/mcplusa/google/feeder/GSAGroupPrincipal.java b/src/main/java/com/mcplusa/google/feeder/GSAGroupPrincipal.java new file mode 100644 index 0000000..28ee8b0 --- /dev/null +++ b/src/main/java/com/mcplusa/google/feeder/GSAGroupPrincipal.java @@ -0,0 +1,52 @@ +package com.mcplusa.google.feeder; + +import com.mcplusa.google.feeder.enums.ACLCaseSensitivityType; +import com.mcplusa.google.feeder.enums.ACLPrincipalScope; + +public class GSAGroupPrincipal { + private String namespace; + private ACLCaseSensitivityType caseSensitivityType; + private ACLPrincipalScope scope; + private String content; + + public String getNamespace() { + return namespace; + } + public void setNamespace(String namespace) { + this.namespace = namespace; + } + + public ACLCaseSensitivityType getCaseSensitivityType() { + return caseSensitivityType; + } + public void setCaseSensitivityType(ACLCaseSensitivityType caseSensitivityType) { + this.caseSensitivityType = caseSensitivityType; + } + public void setCaseSensitivity(boolean sensitive) { + if (sensitive) { + this.setCaseSensitivityType(ACLCaseSensitivityType.ACL_PRINCIPAL_CASE_SENSITIVE); + } else { + this.setCaseSensitivityType(ACLCaseSensitivityType.ACL_PRINCIPAL_CASE_INSENSITIVE); + } + } + + public ACLPrincipalScope getScope() { + return scope; + } + public void setScope(ACLPrincipalScope scope) { + this.scope = scope; + } + public void setScopeUser() { + this.scope = ACLPrincipalScope.ACL_PRINCIPAL_SCOPE_USER; + } + public void setScopeGroup() { + this.scope = ACLPrincipalScope.ACL_PRINCIPAL_SCOPE_GROUP; + } + + public String getContent() { + return content; + } + public void setContent(String content) { + this.content = content; + } +} diff --git a/src/main/java/com/mcplusa/google/feeder/GSAGroupsFeed.java b/src/main/java/com/mcplusa/google/feeder/GSAGroupsFeed.java new file mode 100644 index 0000000..07d0ee2 --- /dev/null +++ b/src/main/java/com/mcplusa/google/feeder/GSAGroupsFeed.java @@ -0,0 +1,121 @@ +package com.mcplusa.google.feeder; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; + +import javax.xml.transform.Transformer; + +import org.apache.log4j.Logger; +import org.apache.xml.serialize.XMLSerializer; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.xml.sax.SAXException; + +import com.mcplusa.google.feeder.constants.ConnectorConstants; + +public class GSAGroupsFeed { + protected Logger logger; + protected Document doc; + protected Node root; + protected int count = 0; + private String feederFolder = ""; + + public String getFeederFolder() { + return feederFolder; + } + public void setFeederFolder(String feederFolder) { + this.feederFolder = feederFolder; + } + + public int getCount() { + return count; + } + public void setCount(int newCount) { + count = newCount; + } + + public void setLogger(Logger newLogger) { + logger = newLogger; + } + + public GSAGroupsFeed() { + doc = FeederUtil.createDocument(); + } + + public void BuildHeader() throws SAXException, IOException { + logger.info("Starting BuildHeader"); + try { + root = doc.createElement(ConnectorConstants.FEEDER_XMLGROUP); + doc.appendChild(root); + + } catch (Exception ex) { + // Parser with specified options can't be built + logger.error("Exception in BuildHeader"); + logger.error(ex.getMessage()); + } + logger.info("Ending BuildHeader"); + return; + } + + public void AddGroupMembership(GSAGroupMembership group) { + this.AddGroupMembership(group, root); + } + + private void AddGroupMembership(GSAGroupMembership group, Node groupContainer) { + Element membershipNode = doc.createElement("membership"); + + GSAGroupPrincipal principal = group.getPrincipal(); + Element principalNode = doc.createElement("principal"); + principalNode.setAttribute("namespace", principal.getNamespace()); + principalNode.setAttribute("case-sensitivity-type", principal.getCaseSensitivityType().getValue()); + principalNode.setAttribute("scope", principal.getScope().getValue()); + principalNode.appendChild(doc.createTextNode(principal.getContent())); + membershipNode.appendChild(principalNode); + + Element membersNode = doc.createElement("members"); + for (GSAGroupPrincipal member: group.getMembers()) { + Element memberNode = doc.createElement("principal"); + memberNode.setAttribute("namespace", member.getNamespace()); + memberNode.setAttribute("case-sensitivity-type", member.getCaseSensitivityType().getValue()); + memberNode.setAttribute("scope", member.getScope().getValue()); + memberNode.appendChild(doc.createTextNode(member.getContent())); + } + membershipNode.appendChild(membersNode); + + groupContainer.appendChild(membershipNode); + } + + public final String WriteXMLToFile(String gsa) { + logger.info("Starting WriteXmlToFile"); + Date now = new Date(); + SimpleDateFormat sd = new SimpleDateFormat("yyyy_mm_dd_hh_ss"); + + String timestamp = sd.format(now); + + String filename = "groups_" + timestamp + ".xml"; + try { + if (getFeederFolder().length() > 0) { + if (getFeederFolder().endsWith("\\")) { + filename = getFeederFolder() + filename; + } else { + filename = getFeederFolder() + "\\" + filename; + } + } else { + //do nothing there was no specified folder + } + // use specific Xerces class to write DOM-data to a file: + XMLSerializer serializer = new XMLSerializer(); + Transformer transformer = FeederUtil.createTransformer(gsa); + FeederUtil.writeToFile(transformer, doc, filename); + + } catch (Throwable ex) { + logger.error("Error GSAFeed.WriteXMLToFile()", ex); + } + logger.info("File written to: " + filename + " successfully."); + logger.info("Ending WriteXmlToFile"); + return filename; + } + +} diff --git a/src/com/mcplusa/google/feeder/GSAMetaDataItem.java b/src/main/java/com/mcplusa/google/feeder/GSAMetaDataItem.java similarity index 100% rename from src/com/mcplusa/google/feeder/GSAMetaDataItem.java rename to src/main/java/com/mcplusa/google/feeder/GSAMetaDataItem.java diff --git a/src/com/mcplusa/google/feeder/constants/ConnectorConstants.java b/src/main/java/com/mcplusa/google/feeder/constants/ConnectorConstants.java similarity index 97% rename from src/com/mcplusa/google/feeder/constants/ConnectorConstants.java rename to src/main/java/com/mcplusa/google/feeder/constants/ConnectorConstants.java index 4ffe0db..6ab125c 100644 --- a/src/com/mcplusa/google/feeder/constants/ConnectorConstants.java +++ b/src/main/java/com/mcplusa/google/feeder/constants/ConnectorConstants.java @@ -19,6 +19,7 @@ public class ConnectorConstants { public final static String FEEDER_HEADER = "header"; public final static String FEEDER_RECORD = "record"; public final static String FEEDER_GROUP = "group"; + public static final String FEEDER_XMLGROUP = "xmlgroups"; public final static String FEEDER_GSAFEED = "gsafeed"; public final static String FEEDER_TYPE = "feedtype"; public final static String FEEDER_DATA = "data"; diff --git a/src/com/mcplusa/google/feeder/constants/GSAAuthMethodTypes.java b/src/main/java/com/mcplusa/google/feeder/constants/GSAAuthMethodTypes.java similarity index 100% rename from src/com/mcplusa/google/feeder/constants/GSAAuthMethodTypes.java rename to src/main/java/com/mcplusa/google/feeder/constants/GSAAuthMethodTypes.java diff --git a/src/com/mcplusa/google/feeder/constants/GSAFeedType.java b/src/main/java/com/mcplusa/google/feeder/constants/GSAFeedType.java similarity index 100% rename from src/com/mcplusa/google/feeder/constants/GSAFeedType.java rename to src/main/java/com/mcplusa/google/feeder/constants/GSAFeedType.java diff --git a/src/com/mcplusa/google/feeder/constants/GSAMimeTypes.java b/src/main/java/com/mcplusa/google/feeder/constants/GSAMimeTypes.java similarity index 100% rename from src/com/mcplusa/google/feeder/constants/GSAMimeTypes.java rename to src/main/java/com/mcplusa/google/feeder/constants/GSAMimeTypes.java diff --git a/src/com/mcplusa/google/feeder/enums/ACLCaseSensitivityType.java b/src/main/java/com/mcplusa/google/feeder/enums/ACLCaseSensitivityType.java similarity index 100% rename from src/com/mcplusa/google/feeder/enums/ACLCaseSensitivityType.java rename to src/main/java/com/mcplusa/google/feeder/enums/ACLCaseSensitivityType.java diff --git a/src/com/mcplusa/google/feeder/enums/ACLInheritanceType.java b/src/main/java/com/mcplusa/google/feeder/enums/ACLInheritanceType.java similarity index 100% rename from src/com/mcplusa/google/feeder/enums/ACLInheritanceType.java rename to src/main/java/com/mcplusa/google/feeder/enums/ACLInheritanceType.java diff --git a/src/com/mcplusa/google/feeder/enums/ACLPrincipalAccess.java b/src/main/java/com/mcplusa/google/feeder/enums/ACLPrincipalAccess.java similarity index 100% rename from src/com/mcplusa/google/feeder/enums/ACLPrincipalAccess.java rename to src/main/java/com/mcplusa/google/feeder/enums/ACLPrincipalAccess.java diff --git a/src/com/mcplusa/google/feeder/enums/ACLPrincipalScope.java b/src/main/java/com/mcplusa/google/feeder/enums/ACLPrincipalScope.java similarity index 100% rename from src/com/mcplusa/google/feeder/enums/ACLPrincipalScope.java rename to src/main/java/com/mcplusa/google/feeder/enums/ACLPrincipalScope.java diff --git a/src/com/mcplusa/google/feeder/uploader/GSAUploader.java b/src/main/java/com/mcplusa/google/feeder/uploader/GSAUploader.java similarity index 100% rename from src/com/mcplusa/google/feeder/uploader/GSAUploader.java rename to src/main/java/com/mcplusa/google/feeder/uploader/GSAUploader.java diff --git a/src/com/mcplusa/google/feeder/util/Base64.java b/src/main/java/com/mcplusa/google/feeder/util/Base64.java similarity index 100% rename from src/com/mcplusa/google/feeder/util/Base64.java rename to src/main/java/com/mcplusa/google/feeder/util/Base64.java