Skip to content

Commit

Permalink
Fixed issues related to javassist library dependencies conflict issue
Browse files Browse the repository at this point in the history
  • Loading branch information
Jayesh M. Prajapati committed Jan 15, 2020
1 parent 86d92e3 commit aded5c9
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 140 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@ public ManageTransactionDashboard_ByCategory(ManageTransactionDashboard dashboar

public Date default1$$() {
Date date = new Date();
date = DateUtils.setMonths(date, Calendar.JANUARY);
date = DateUtils.setYears(date, -1);
date = DateUtils.setMonths(date, Calendar.APRIL);
date = DateUtils.setDays(date, 1);
date = DateUtils.setHours(date, 0);
date = DateUtils.setMinutes(date, 0);
Expand All @@ -140,7 +141,7 @@ public ManageTransactionDashboard_ByCategory(ManageTransactionDashboard dashboar

public Date default2$$() {
Date date = new Date();
date = DateUtils.setMonths(date, Calendar.DECEMBER);
date = DateUtils.setMonths(date, Calendar.MARCH);
date = DateUtils.setDays(date, 31);
date = DateUtils.setHours(date, 23);
date = DateUtils.setMinutes(date, 59);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@
* Ref: https://stackoverflow.com/questions/24338108/java-encrypt-string-with-existing-public-key-file
*/
@DomainService(
nature = NatureOfService.DOMAIN
nature = NatureOfService.DOMAIN,
objectType = "base.EncryptionService"
)
public class EncryptionService {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@
@javax.jdo.annotations.Unique(name="MailConnectionProfile_name_UNQ", members = {"name"})
@DomainObject(
auditing = Auditing.ENABLED,
publishing = Publishing.ENABLED,
objectType = "reader.MailConnectionProfile",
bounded = true
) // objectType inferred from @PersistenceCapable#schema
@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
Expand All @@ -64,7 +66,7 @@
public class MailConnectionProfile implements Comparable<MailConnectionProfile>, WithNameAndDescription {

@javax.jdo.annotations.Column(allowsNull = "false", length = WithName.MAX_LEN)
@Title(prepend = "MAIL ")
@Title(prepend = "IMAP ")
@Property(editing = Editing.DISABLED)
@Getter @Setter
private String name;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,11 @@
*/
package domainapp.modules.rdr.service;

import java.lang.management.ManagementFactory;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;

import javax.mail.Folder;
import javax.mail.Header;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
Expand All @@ -22,12 +19,6 @@
import javax.mail.search.OrTerm;
import javax.mail.search.SearchTerm;
import javax.mail.search.SubjectTerm;
import javax.management.InstanceAlreadyExistsException;
import javax.management.MBeanRegistrationException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;

import domainapp.modules.rdr.dom.MailConnectionProfile;

Expand All @@ -36,95 +27,6 @@
*
*/
public class MailConnection {

public static interface MailConnectionStatsMBean {

void connectionTime(long timeInMillis);

Long getAverageConnectionTime();

void folderOpenTime(long timeInMillis);

Long getAverageFolderOpenTime();

void searchTime(long timeInMillis);

Long getAverageSearchTime();
}

public static class MailConnectionStats implements MailConnectionStatsMBean {

private List<Long> connectionTime = new ArrayList<Long>();

private List<Long> folderOpenTime = new ArrayList<Long>();

private List<Long> searchTime = new ArrayList<Long>();

public void connectionTime(long timeInMillis) {
connectionTime.add(timeInMillis);
}

public void folderOpenTime(long timeInMillis) {
folderOpenTime.add(timeInMillis);
}

public void searchTime(long timeInMillis) {
searchTime.add(timeInMillis);
}

public Long getAverageConnectionTime() {
if (connectionTime.isEmpty()) {
return -1l;
}
long totalTime = 0l;
for (long time : connectionTime) {
totalTime += time;
}
return totalTime / connectionTime.size();
}

public Long getAverageFolderOpenTime() {
if (folderOpenTime.isEmpty()) {
return -1l;
}
long totalTime = 0l;
for (long time : folderOpenTime) {
totalTime += time;
}
return totalTime / folderOpenTime.size();
}

public Long getAverageSearchTime() {
if (searchTime.isEmpty()) {
return -1l;
}
long totalTime = 0l;
for (long time : searchTime) {
totalTime += time;
}
return totalTime / searchTime.size();
}

}

static MailConnectionStatsMBean stats = new MailConnectionStats();

static {
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
ObjectName objectName = null;
try {
objectName = new ObjectName("outil.rnd.mail.imap:type=MailConnectionStats");
server.registerMBean(stats, objectName);
} catch (MalformedObjectNameException e) {
e.printStackTrace();
} catch (InstanceAlreadyExistsException e) {
e.printStackTrace();
} catch (MBeanRegistrationException e) {
e.printStackTrace();
} catch (NotCompliantMBeanException e) {
e.printStackTrace();
}
}

private MailConnectionProfile configuration;

Expand Down Expand Up @@ -154,7 +56,6 @@ protected PasswordAuthentication getPasswordAuthentication() {
});
emailSession.setDebug(configuration.getDebug());

long start = System.currentTimeMillis();
try {
Store store = emailSession.getStore(protocol);
store.connect();
Expand All @@ -164,22 +65,17 @@ protected PasswordAuthentication getPasswordAuthentication() {
throw new IllegalStateException("Failed to connect - " + e.getMessage(), e);
} catch (MessagingException e) {
throw new IllegalStateException("Failed to connect - " + e.getMessage(), e);
} finally {
stats.connectionTime(System.currentTimeMillis() - start);
}
}

public Folder getFolder(Store store, String folderName) {
long start = System.currentTimeMillis();
try {
Folder folder = store.getFolder(folderName);
folder.open(Folder.READ_ONLY);
openedFolder.add(folder);
return folder;
} catch (MessagingException e) {
throw new IllegalStateException("Failed to get folder - " + e.getMessage(), e);
} finally {
stats.folderOpenTime(System.currentTimeMillis() - start);
}
}

Expand Down Expand Up @@ -247,32 +143,10 @@ public Message[] search(String folderName, String subjectWords, String sender, B
criteria.add(new OrTerm(senderTerms.toArray(new SearchTerm[] {})));
}
}
long start = System.currentTimeMillis();
Message[] messages = folder.search(new AndTerm(criteria.toArray(new SearchTerm[] {})));
stats.searchTime(System.currentTimeMillis() - start);
return messages;
} catch (MessagingException e) {
throw new IllegalStateException("Fail to access mailbox - " + e.getMessage(), e);
}
}

/**
* @param message
* @throws MessagingException
*/
private void messageHeaders(Message message) throws MessagingException {
Enumeration<Header> headers = message.getAllHeaders();
while (headers.hasMoreElements()) {
Header header = headers.nextElement();
System.out.println(header.getName() + " = " + header.getValue());
}
}

public void dumpStats() {
System.out.println("========================================================================");
System.out.println("Average connection time (ms): " + stats.getAverageConnectionTime());
System.out.println("Average folder open time (ms): " + stats.getAverageFolderOpenTime());
System.out.println("Average search time (ms): " + stats.getAverageSearchTime());
System.out.println("========================================================================");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import domainapp.modules.base.service.AbstractService;
import domainapp.modules.base.service.EncryptionService;
import domainapp.modules.rdr.dom.MailConnectionProfile;
import lombok.extern.slf4j.Slf4j;

/**
* @author jayeshecs
Expand All @@ -27,13 +26,11 @@
nature = NatureOfService.DOMAIN,
repositoryFor = MailConnectionProfile.class
)
@Slf4j
public class MailConnectionProfileService extends AbstractService<MailConnectionProfile> {

public MailConnectionProfileService() {
super(MailConnectionProfile.class);
}


@Programmatic
public List<MailConnectionProfile> all() {
Expand All @@ -43,7 +40,6 @@ public List<MailConnectionProfile> all() {
@Programmatic
public MailConnectionProfile create(String name, String description, String hostname, String port, String username, String password, Boolean secure, Boolean starttls, Boolean debug) {
password = encryptionService.encrypt(password);
log.info("Encrypted password = " + password);
MailConnectionProfile newMailConnectionProfile = MailConnectionProfile.builder().name(name).description(description).hostname(hostname).port(port).username(username).password(password).secure(secure).starttls(starttls).debug(debug).build();
MailConnectionProfile mailConnectionProfile = repositoryService.persistAndFlush(newMailConnectionProfile);
return mailConnectionProfile;
Expand All @@ -52,7 +48,6 @@ public MailConnectionProfile create(String name, String description, String host
@Programmatic
public void changePassword(MailConnectionProfile mailConnectionProfile, String password) {
password = encryptionService.encrypt(password);
log.info("Encrypted password = " + password);
List<MailConnectionProfile> list = search(NamedQueryConstants.QUERY_FIND_BY_NAME, "name", mailConnectionProfile.getName());
MailConnectionProfile mailConnectionProfilePersisted = null;
if (list != null && !list.isEmpty()) {
Expand All @@ -79,5 +74,5 @@ public MailConnection getMailConnection(MailConnectionProfile mailConnectionProf
}

@Inject
protected EncryptionService encryptionService;
EncryptionService encryptionService;
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.apache.isis.applib.annotation.Optionality;
import org.apache.isis.applib.annotation.Parameter;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.services.i18n.TranslatableString;
Expand Down Expand Up @@ -56,6 +57,9 @@ public String title() {

@CollectionLayout(defaultView = "table")
public List<MailConnectionProfile> getMailConnectionProfiles() {
if (mailConnectionProfileService == null) {
return Collections.EMPTY_LIST;
}
return mailConnectionProfileService.all();
}

Expand Down Expand Up @@ -119,6 +123,7 @@ public ManageReaderDashboard createStatementReaderType(
}

@SuppressWarnings("unchecked")
@Programmatic
public List<Addon> choice2CreateStatementReaderType() {
List<AddonType> list = addonTypeService.search(NamedQueryConstants.QUERY_FIND_BY_NAME, "name", StatementReaderType.ADDON_TYPE_NAME);
if (list == null || list.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
@javax.jdo.annotations.Unique(name="MailStatementProfile_name_UNQ", members = {"name"})
@DomainObject(
auditing = Auditing.ENABLED,
objectType = "txn.MailStatementProfile",
bounded = true
) // objectType inferred from @PersistenceCapable#schema
@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
Expand Down
21 changes: 17 additions & 4 deletions webapp/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>5.0.3</version>
</dependency>

<dependency>
Expand Down Expand Up @@ -301,6 +300,18 @@
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>${ognl.version}</version>
<exclusions>
<exclusion>
<!-- bundles old version, so hitting https://code.google.com/archive/p/reflections/issues/178 -->
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
<exclusion>
<!-- bundles old version, so hitting https://stackoverflow.com/questions/30313255/reflections-java-8-invalid-constant-type -->
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>

</dependencies>
Expand Down Expand Up @@ -330,19 +341,22 @@
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-web</artifactId>
<version>${activemq-web.version}</version>
</dependency>

<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>${ognl.version}</version>
<exclusions>
<exclusion>
<!-- bundles old version, so hitting https://code.google.com/archive/p/reflections/issues/178 -->
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
<exclusion>
<!-- bundles old version, so hitting https://stackoverflow.com/questions/30313255/reflections-java-8-invalid-constant-type -->
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>

Expand All @@ -362,7 +376,6 @@
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
<version>${xbean-spring.version}</version>
</dependency>

</dependencies>
Expand Down

0 comments on commit aded5c9

Please sign in to comment.