Skip to content
This repository was archived by the owner on Jan 28, 2021. It is now read-only.

Commit e250490

Browse files
committed
#87 - debugging failure to start app
adds additional XxxDemoModule, adds bootstrap test in webapp module
1 parent 1394dbf commit e250490

File tree

31 files changed

+441
-57
lines changed

31 files changed

+441
-57
lines changed

ex/app/extended/appdefn/src/main/java/org/incode/domainapp/extended/appdefn/ExtendedAppAppDefnModule.java

+19-18
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,19 @@
4040

4141
import org.incode.domainapp.extended.embeddedcamel.EmbeddedCamelModule;
4242
import org.incode.domainapp.extended.module.fixtures.FixturesModule;
43-
import org.incode.example.alias.AliasModule;
44-
import org.incode.example.classification.ClassificationModule;
45-
import org.incode.example.commchannel.CommChannelModule;
46-
import org.incode.example.communications.CommunicationsModule;
43+
import org.incode.example.alias.demo.AliasDemoModule;
44+
import org.incode.example.classification.demo.ClassificationDemoModule;
45+
import org.incode.example.commchannel.demo.CommChannelDemoModule;
46+
import org.incode.example.communications.demo.CommunicationsDemoModule;
4747
import org.incode.example.country.CountryModule;
48-
import org.incode.example.docfragment.DocFragmentModule;
48+
import org.incode.example.docfragment.demo.DocFragmentDemoModule;
4949
import org.incode.example.docrendering.freemarker.FreemarkerDocRenderingModule;
5050
import org.incode.example.docrendering.stringinterpolator.StringInterpolatorDocRenderingModule;
5151
import org.incode.example.docrendering.xdocreport.XDocReportDocRenderingModule;
52-
import org.incode.example.document.DocumentModule;
53-
import org.incode.example.note.NoteModule;
52+
import org.incode.example.document.demo.DocumentDemoModule;
5453
import org.incode.example.settings.SettingsModule;
55-
import org.incode.example.tags.TagsModule;
54+
import org.incode.example.tags.demo.TagsDemoModule;
55+
import org.incode.examples.note.demo.NoteDemoModule;
5656
import org.incode.module.base.services.BaseServicesModule;
5757
import org.incode.module.errorrptjira.ErrorReportingJiraModule;
5858
import org.incode.module.errorrptslack.ErrorReportingSlackModule;
@@ -101,7 +101,8 @@ public Set<Module> getDependencies() {
101101
new SecurityModule() // expected by shiro config
102102
);
103103

104-
appendExampleModulesTo(dependencies);
104+
appendExampleFixtureModulesTo(dependencies);
105+
105106
appendExtModulesTo(dependencies);
106107
appendLibModulesTo(dependencies);
107108
appendSpiModulesTo(dependencies);
@@ -110,21 +111,21 @@ public Set<Module> getDependencies() {
110111
return dependencies;
111112
}
112113

113-
private void appendExampleModulesTo(Set<Module> dependencies) {
114+
private void appendExampleFixtureModulesTo(Set<Module> dependencies) {
114115
final HashSet<ModuleAbstract> mods = Sets.newHashSet(
115-
new AliasModule(),
116-
new ClassificationModule(),
117-
new CommChannelModule(),
118-
new CommunicationsModule(),
116+
new AliasDemoModule(),
117+
new ClassificationDemoModule(),
118+
new CommChannelDemoModule(),
119+
new CommunicationsDemoModule(),
119120
new CountryModule(),
120-
new DocFragmentModule(),
121+
new DocFragmentDemoModule(),
121122
new FreemarkerDocRenderingModule(),
122123
new StringInterpolatorDocRenderingModule(),
123124
new XDocReportDocRenderingModule(),
124-
new DocumentModule(),
125-
new NoteModule(),
125+
new DocumentDemoModule(),
126+
new NoteDemoModule(),
126127
new SettingsModule(), // expected by togglz
127-
new TagsModule()
128+
new TagsDemoModule()
128129
);
129130
dependencies.addAll(mods);
130131
}

ex/app/extended/appdefn/src/main/java/org/incode/domainapp/extended/appdefn/fixture/RecreateDemoFixtures.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,27 @@
66
import org.apache.isis.applib.services.metamodel.MetaModelService5;
77
import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
88

9+
import org.incode.domainapp.extended.module.fixtures.per_cpt.lib.docx.fixture.order.DemoOrderAndOrderLine_create4_hardcodedData;
10+
import org.incode.domainapp.extended.module.fixtures.per_cpt.lib.excel.fixture.DemoToDoItem_create_usingExcelFixture;
911
import org.incode.domainapp.extended.module.fixtures.per_cpt.lib.fakedata.fixture.DemoObjectWithAll_create3;
1012
import org.incode.domainapp.extended.module.fixtures.per_cpt.lib.poly.fixture.Case_FixedAsset_Party_createAll;
1113
import org.incode.domainapp.extended.module.fixtures.per_cpt.lib.servletapi.fixture.ServletApiDemoObject_create3;
14+
import org.incode.domainapp.extended.module.fixtures.per_cpt.lib.stringinterpolator.fixture.DemoReminder_create4;
1215
import org.incode.domainapp.extended.module.fixtures.per_cpt.spi.audit.fixture.sub.SomeAuditedObject_create3;
1316
import org.incode.domainapp.extended.module.fixtures.per_cpt.spi.audit.fixture.sub.SomeNotAuditedObject_create3;
1417
import org.incode.domainapp.extended.module.fixtures.per_cpt.spi.command.fixture.SomeCommandAnnotatedObject_create3;
1518
import org.incode.domainapp.extended.module.fixtures.per_cpt.spi.publishmq.fixture.PublishMqDemoObject_create3;
1619
import org.incode.domainapp.extended.module.fixtures.per_cpt.spi.security.fixture.SecurityModuleAppSetUp;
17-
import org.incode.domainapp.extended.module.fixtures.shared.demo.fixture.DemoObject_createUpTo10_hardcodedData;
1820
import org.incode.domainapp.extended.module.fixtures.per_cpt.wkt.pdfjs.fixture.DemoObjectWithBlob_createUpTo5_fakeData;
19-
import org.incode.domainapp.extended.module.fixtures.per_cpt.lib.docx.fixture.order.DemoOrderAndOrderLine_create4_hardcodedData;
20-
import org.incode.domainapp.extended.module.fixtures.per_cpt.lib.stringinterpolator.fixture.DemoReminder_create4;
21-
import org.incode.domainapp.extended.module.fixtures.per_cpt.lib.excel.fixture.DemoToDoItem_create_usingExcelFixture;
21+
import org.incode.domainapp.extended.module.fixtures.shared.demo.fixture.DemoObject_createUpTo10_hardcodedData;
2222
import org.incode.example.classification.demo.usage.fixture.DemoObjectWithAtPath_and_OtherObjectWithAtPath_create3;
2323
import org.incode.example.communications.demo.usage.fixture.demoobjwithnote.CommsCustomer_and_CommsInvoice_create3;
2424
import org.incode.example.communications.demo.usage.fixture.doctypes.DocumentType_and_DocumentTemplates_createSome;
2525
import org.incode.example.country.fixture.CountriesRefData;
2626
import org.incode.example.country.fixture.StatesRefData;
2727
import org.incode.example.docfragment.demo.usage.fixture.DocFragCustomer_and_DocFragInvoice_and_fragments_create;
2828
import org.incode.example.document.demo.usage.fixture.seed.RenderingStrategy_create6;
29-
import org.incode.example.tags.demo.usage.fixture.TaggableObject_withTags_create3;
29+
import org.incode.example.tags.demo.shared.fixture.TaggableObject_withTags_create3;
3030

3131
public class RecreateDemoFixtures extends DiscoverableFixtureScript {
3232

ex/app/extended/appdefn/src/main/java/org/incode/domainapp/extended/appdefn/services/homepage/HomePageViewModel.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@
115115
import org.incode.example.settings.dom.ApplicationSettingsServiceRW;
116116
import org.incode.example.settings.dom.UserSetting;
117117
import org.incode.example.settings.dom.UserSettingsServiceRW;
118-
import org.incode.example.tags.demo.usage.dom.demo.TaggableObject;
119-
import org.incode.example.tags.demo.usage.dom.demo.TaggableObjectMenu;
118+
import org.incode.example.tags.demo.shared.dom.demo.TaggableObject;
119+
import org.incode.example.tags.demo.shared.dom.demo.TaggableObjectMenu;
120120
import org.incode.example.tags.dom.impl.Tag;
121121
import org.incode.examples.note.demo.shared.demo.dom.NotableObject;
122122
import org.incode.examples.note.demo.shared.demo.dom.NotableObjectRepository;

ex/app/extended/module-fixtures/src/main/java/org/incode/domainapp/extended/module/fixtures/per_cpt/lib/docx/dom/custconf/CustomerConfirmation.java

+19-4
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ public class CustomerConfirmation {
5050

5151
@PostConstruct
5252
public void init() throws IOException, LoadTemplateException {
53-
final byte[] bytes = Resources.toByteArray(Resources.getResource(this.getClass(), "CustomerConfirmation.docx"));
54-
wordprocessingMLPackage = docxService.loadPackage(new ByteArrayInputStream(bytes));
53+
// now done lazily
5554
}
5655
//endregion
5756

@@ -70,7 +69,7 @@ public Blob downloadCustomerConfirmation(
7069
final org.w3c.dom.Document w3cDocument = asInputW3cDocument(order);
7170

7271
final ByteArrayOutputStream docxTarget = new ByteArrayOutputStream();
73-
docxService.merge(w3cDocument, wordprocessingMLPackage, docxTarget, DocxService.MatchingPolicy.LAX);
72+
docxService.merge(w3cDocument, getWordprocessingMLPackage(), docxTarget, DocxService.MatchingPolicy.LAX);
7473

7574
final String blobName = "customerConfirmation-" + order.getNumber() + ".docx";
7675
final String blobMimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
@@ -119,7 +118,7 @@ public Blob downloadCustomerConfirmationAsPdf(
119118
final org.w3c.dom.Document w3cDocument = asInputW3cDocument(order);
120119

121120
final ByteArrayOutputStream docxTarget = new ByteArrayOutputStream();
122-
docxService.merge(w3cDocument, wordprocessingMLPackage, docxTarget, DocxService.MatchingPolicy.LAX, DocxService.OutputType.PDF);
121+
docxService.merge(w3cDocument, getWordprocessingMLPackage(), docxTarget, DocxService.MatchingPolicy.LAX, DocxService.OutputType.PDF);
123122

124123
final String blobName = "customerConfirmation-" + order.getNumber() + ".pdf";
125124
final String blobMimeType = "application/pdf";
@@ -233,6 +232,22 @@ private static void addTableRow(final Element table, final String[] cells) {
233232
@javax.inject.Inject
234233
private DocxService docxService;
235234

235+
@lombok.SneakyThrows
236+
private WordprocessingMLPackage getWordprocessingMLPackage() {
237+
238+
if(wordprocessingMLPackage == null) {
239+
final byte[] bytes;
240+
bytes = Resources.toByteArray(Resources.getResource(this.getClass(), "CustomerConfirmation.docx"));
241+
wordprocessingMLPackage = docxService.loadPackage(new ByteArrayInputStream(bytes));
242+
}
243+
244+
return wordprocessingMLPackage;
245+
}
246+
247+
private void setWordprocessingMLPackage(WordprocessingMLPackage wordprocessingMLPackage) {
248+
this.wordprocessingMLPackage = wordprocessingMLPackage;
249+
}
250+
236251
//endregion
237252

238253
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
#
2+
# Isis uses log4j is used to provide system logging
3+
#
4+
log4j.rootCategory=INFO, Console
5+
6+
# The console appender
7+
log4j.appender.Console=org.apache.log4j.ConsoleAppender
8+
log4j.appender.Console.target=System.out
9+
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
10+
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} [%-20c{1} %-10t %-5p] %m%n
11+
12+
log4j.appender.File=org.apache.log4j.RollingFileAppender
13+
log4j.appender.File.file=isis.log
14+
log4j.appender.File.append=false
15+
log4j.appender.File.layout=org.apache.log4j.PatternLayout
16+
log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p] %m%n
17+
18+
log4j.appender.translations-po=org.apache.log4j.FileAppender
19+
log4j.appender.translations-po.File=./translations.pot
20+
log4j.appender.translations-po.Append=false
21+
log4j.appender.translations-po.layout=org.apache.log4j.PatternLayout
22+
log4j.appender.translations-po.layout.ConversionPattern=%m%n
23+
24+
! turn on the internal log4j debugging flag so we can see what it is doing
25+
#log4j.debug=true
26+
27+
28+
# DataNucleus
29+
# the first two log the DML and DDL (if set to DEBUG)
30+
log4j.logger.DataNucleus.Datastore.Native=WARN, Console
31+
log4j.logger.DataNucleus.Datastore.Schema=DEBUG, Console
32+
# the remainder can probably be left to WARN
33+
log4j.logger.DataNucleus.Persistence=WARN, Console
34+
log4j.logger.DataNucleus.Transaction=WARN, Console
35+
log4j.logger.DataNucleus.Connection=WARN, Console
36+
log4j.logger.DataNucleus.Query=WARN, Console
37+
log4j.logger.DataNucleus.Cache=WARN, Console
38+
log4j.logger.DataNucleus.MetaData=WARN, Console
39+
log4j.logger.DataNucleus.Datastore=WARN, Console
40+
log4j.logger.DataNucleus.Datastore.Persist=WARN, Console
41+
log4j.logger.DataNucleus.Datastore.Retrieve=WARN, Console
42+
log4j.logger.DataNucleus.General=WARN, Console
43+
log4j.logger.DataNucleus.Lifecycle=WARN, Console
44+
log4j.logger.DataNucleus.ValueGeneration=WARN, Console
45+
log4j.logger.DataNucleus.Enhancer=WARN, Console
46+
log4j.logger.DataNucleus.SchemaTool=ERROR, Console
47+
log4j.logger.DataNucleus.JDO=WARN, Console
48+
log4j.logger.DataNucleus.JPA=ERROR, Console
49+
log4j.logger.DataNucleus.JCA=WARN, Console
50+
log4j.logger.DataNucleus.IDE=ERROR, Console
51+
52+
log4j.additivity.DataNucleus.Datastore.Native=false
53+
log4j.additivity.DataNucleus.Datastore.Schema=false
54+
log4j.additivity.DataNucleus.Datastore.Persistence=false
55+
log4j.additivity.DataNucleus.Datastore.Transaction=false
56+
log4j.additivity.DataNucleus.Datastore.Connection=false
57+
log4j.additivity.DataNucleus.Datastore.Query=false
58+
log4j.additivity.DataNucleus.Datastore.Cache=false
59+
log4j.additivity.DataNucleus.Datastore.MetaData=false
60+
log4j.additivity.DataNucleus.Datastore.Datastore=false
61+
log4j.additivity.DataNucleus.Datastore.Datastore.Persist=false
62+
log4j.additivity.DataNucleus.Datastore.Datastore.Retrieve=false
63+
log4j.additivity.DataNucleus.Datastore.General=false
64+
log4j.additivity.DataNucleus.Datastore.Lifecycle=false
65+
log4j.additivity.DataNucleus.Datastore.ValueGeneration=false
66+
log4j.additivity.DataNucleus.Datastore.Enhancer=false
67+
log4j.additivity.DataNucleus.Datastore.SchemaTool=false
68+
log4j.additivity.DataNucleus.Datastore.JDO=false
69+
log4j.additivity.DataNucleus.Datastore.JPA=false
70+
log4j.additivity.DataNucleus.Datastore.JCA=false
71+
log4j.additivity.DataNucleus.Datastore.IDE=false
72+
73+
74+
75+
76+
# if using log4jdbc-remix as JDBC driver
77+
#log4j.logger.jdbc.sqlonly=DEBUG, sql, Console
78+
#log4j.additivity.jdbc.sqlonly=false
79+
#log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
80+
#log4j.additivity.jdbc.resultsettable=false
81+
82+
#log4j.logger.jdbc.audit=WARN,jdbc, Console
83+
#log4j.additivity.jdbc.audit=false
84+
#log4j.logger.jdbc.resultset=WARN,jdbc
85+
#log4j.additivity.jdbc.resultset=false
86+
#log4j.logger.jdbc.sqltiming=WARN,sqltiming
87+
#log4j.additivity.jdbc.sqltiming=false
88+
#log4j.logger.jdbc.connection=FATAL,connection
89+
#log4j.additivity.jdbc.connection=false
90+
91+
92+
log4j.logger.org.apache.isis.core.runtime.services.i18n.po.PoWriter=INFO,translations-po
93+
log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PoWriter=false

ex/app/extended/webapp/pom.xml

+9
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,15 @@
124124
<artifactId>isis-mavendeps-intellij</artifactId>
125125
<type>pom</type>
126126
</dependency>
127+
128+
<!-- test -->
129+
<dependency>
130+
<groupId>org.apache.isis.mavendeps</groupId>
131+
<artifactId>isis-mavendeps-testing</artifactId>
132+
<type>pom</type>
133+
<scope>test</scope>
134+
</dependency>
135+
127136
</dependencies>
128137

129138
<profiles>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
*
3+
* Copyright 2012-2014 Eurocommercial Properties NV
4+
*
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
package org.incode.domainapp.extended.appdefn;
20+
21+
import javax.inject.Inject;
22+
23+
import org.junit.Test;
24+
25+
import org.apache.isis.applib.Module;
26+
import org.apache.isis.applib.services.jaxb.JaxbService;
27+
import org.apache.isis.applib.services.metamodel.MetaModelService4;
28+
29+
public class ExtendedAppBootstrapIntegTest extends ExtendedAppIntegTestAbstract {
30+
31+
@Test
32+
public void serializes_module() throws Exception {
33+
34+
final Module module = metaModelService4.getAppManifest2().getModule();
35+
36+
final String s = jaxbService.toXml(module);
37+
System.out.println(s);
38+
}
39+
40+
@Inject
41+
MetaModelService4 metaModelService4;
42+
43+
@Inject
44+
JaxbService jaxbService;
45+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.incode.domainapp.extended.appdefn;
2+
3+
import java.util.Set;
4+
5+
import javax.xml.bind.annotation.XmlRootElement;
6+
7+
import org.apache.isis.applib.Module;
8+
import org.apache.isis.applib.ModuleAbstract;
9+
import org.apache.isis.core.integtestsupport.IntegrationTestAbstract3;
10+
11+
import org.incode.domainapp.extended.appdefn.overrides.MyTranslationResolver;
12+
13+
public abstract class ExtendedAppIntegTestAbstract extends IntegrationTestAbstract3 {
14+
15+
public static ModuleAbstract module() {
16+
return new MyModule();
17+
}
18+
19+
protected ExtendedAppIntegTestAbstract() {
20+
super(module());
21+
}
22+
23+
@XmlRootElement(name = "module")
24+
public static class MyModule extends ExtendedAppAppDefnModule {
25+
@Override public Set<Module> getDependencies() {
26+
final Set<Module> dependencies = super.getDependencies();
27+
dependencies.add(new MyTranslationResolver.Module());
28+
return dependencies;
29+
}
30+
}
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.incode.domainapp.extended.appdefn.overrides;
2+
3+
import java.util.List;
4+
5+
import org.apache.isis.applib.ModuleAbstract;
6+
import org.apache.isis.applib.annotation.DomainService;
7+
import org.apache.isis.applib.annotation.NatureOfService;
8+
import org.apache.isis.applib.services.i18n.TranslationsResolver;
9+
10+
@DomainService(nature = NatureOfService.DOMAIN, menuOrder = "100")
11+
public class MyTranslationResolver implements TranslationsResolver {
12+
public static class Module extends ModuleAbstract {
13+
}
14+
@Override public List<String> readLines(final String s) {
15+
return null;
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.incode.example.classification.demo;
2+
3+
import java.util.Set;
4+
5+
import javax.xml.bind.annotation.XmlRootElement;
6+
7+
import com.google.common.collect.Sets;
8+
9+
import org.apache.isis.applib.Module;
10+
import org.apache.isis.applib.ModuleAbstract;
11+
12+
import org.incode.example.classification.demo.shared.ClassificationDemoSharedModule;
13+
import org.incode.example.classification.demo.usage.ClassificationDemoUsageModule;
14+
15+
@XmlRootElement(name = "module")
16+
public class ClassificationDemoModule extends ModuleAbstract {
17+
18+
@Override public Set<Module> getDependencies() {
19+
return Sets.newHashSet(
20+
new ClassificationDemoSharedModule(),
21+
new ClassificationDemoUsageModule()
22+
);
23+
}
24+
25+
}

0 commit comments

Comments
 (0)