sling.properties - docassurances

Avatar

Avatar
Validate 1
Level 1
tyss20333592
Level 1

Likes

0 likes

Total Posts

3 posts

Correct reply

0 solutions
Top badges earned
Validate 1
View profile

Avatar
Validate 1
Level 1
tyss20333592
Level 1

Likes

0 likes

Total Posts

3 posts

Correct reply

0 solutions
Top badges earned
Validate 1
View profile
tyss20333592
Level 1

14-09-2018

Hi,

We have projects that are already live and make use of some bouncycastle classes. However we now developed services for generating editable PDF's. From the Adobe documentation we need to add org.bouncycastle.* to the boot delegation. However this seems top throw the publisher over. Below is the sling.properties file. In orange is what is already there, and in red is what was done as per Adobe docs. We also tried to replace orange with org.bouncycastle.* but that didnt work.

#Overlay properties for configuration

#Wed Sep 05 14:42:56 CAT 2018

obr.repository.url=http\://sling.apache.org/obr/repository.xml

sling.framework.install.incremental=true

sling.bootdelegation.weblogic=weblogic.xml.*

org.osgi.framework.system.packages=${osgi-core-packages}, ${osgi-compendium-services}, org.apache.sling.launchpad.api;version\=1.1.0, ${jre-${java.specification.version}} ${org.apache.sling.launcher.system.packages}

org.apache.sling.commons.log.file.number=5

org.osgi.framework.startlevel.beginning=30

org.osgi.framework.bundle.parent=framework

org.apache.sling.commons.log.file.size='.'yyyy-MM-dd

gosh.home=${sling.home}

ds.factory.enabled=true

repository.home=${sling.home}/repository

ds.loglevel=warn

org.apache.sling.commons.log.julenabled=true

org.osgi.framework.system.capabilities=${eecap-${java.specification.version}}

org.osgi.framework.system.packages.extra=org.bouncycastle.asn1.pkcs,org.bouncycastle.asn1.sec,org.bouncycastle.asn1.x500,org.bouncycastle.asn1.x509,org.bouncycastle.asn1.x9,org.bouncycastle.cert,org.bouncycastle.cert.jcajce,org.bouncycastle.crypto,org.bouncycastle.crypto.digests,org.bouncycastle.crypto.encodings,org.bouncycastle.crypto.engines,org.bouncycastle.crypto.generators,org.bouncycastle.crypto.io,org.bouncycastle.crypto.macs,org.bouncycastle.crypto.modes,org.bouncycastle.crypto.paddings,org.bouncycastle.crypto.params,org.bouncycastle.crypto.prng,org.bouncycastle.crypto.prng.drbg,org.bouncycastle.crypto.signers,org.bouncycastle.crypto.util,org.bouncycastle.jcajce.provider.asymmetric.dsa,org.bouncycastle.jcajce.provider.asymmetric.ec,org.bouncycastle.jcajce.provider.asymmetric.rsa,org.bouncycastle.jcajce.provider.asymmetric.util,org.bouncycastle.jce,org.bouncycastle.jce.provider,org.bouncycastle.jce.spec,org.bouncycastle.math.ec,org.bouncycastle.openssl.jcajce,org.bouncycastle.operator,org.bouncycastle.operator.jcajce,org.bouncycastle.util,org.bouncycastle.util.io,org.bouncycastle.x509.extension,org.osgi.framework.system.packages.extra\=org.bouncycastle.asn1,javax.activation;version\=1.1.1

osgi-compendium-services=org.osgi.util.tracker; version\=1.5.1

org.osgi.framework.storage=${sling.launchpad}/felix

ds.global.extender=true

org.osgi.service.http.port=8080

org.apache.sling.commons.log.file=${sling.home}/logs/error.log

sling.bootdelegation.jboss.__redirected=__redirected

sling.bootdelegation.jboss=__redirected

org.osgi.framework.system.capabilities.extra=${org.apache.sling.launcher.system.capabilities.extra}

granite.product.version=0.0.0.0_0_0_6_0_

sling.bootdelegation.sun=sun.*,com.sun.*

org.osgi.framework.bootdelegation=com.yourkit.*, ${org.apache.sling.launcher.bootdelegation}

sling.fileinstall.dir=${sling.home}/install

org.apache.felix.http.shared_servlet_context_attributes=true

felix.startlevel.bundle=20

sling.framework.install.startlevel=1

jre-1.8=javax.accessibility;uses\:\="javax.swing.text";version\="0.0.0.1_008_JavaSE", javax.activity;version\="0.0.0.1_008_JavaSE", javax.annotation.processing;uses\:\="javax.tools,javax.lang.model,javax.lang.model.element,javax.lang.model.util";version\="0.0.0.1_008_JavaSE", javax.annotation;version\="0.0.0.1_008_JavaSE", javax.crypto.interfaces;uses\:\="javax.crypto.spec,javax.crypto";version\="0.0.0.1_008_JavaSE", javax.crypto.spec;uses\:\="javax.crypto";version\="0.0.0.1_008_JavaSE", javax.crypto;uses\:\="javax.crypto.spec";version\="0.0.0.1_008_JavaSE", javax.imageio.event;uses\:\="javax.imageio";version\="0.0.0.1_008_JavaSE", javax.imageio.metadata;uses\:\="org.w3c.dom,javax.imageio";version\="0.0.0.1_008_JavaSE", javax.imageio.plugins.bmp;uses\:\="javax.imageio";version\="0.0.0.1_008_JavaSE", javax.imageio.plugins.jpeg;uses\:\="javax.imageio";version\="0.0.0.1_008_JavaSE", javax.imageio.spi;uses\:\="javax.imageio.stream,javax.imageio,javax.imageio.metadata";version\="0.0.0.1_008_JavaSE", javax.imageio.stream;uses\:\="javax.imageio";version\="0.0.0.1_008_JavaSE", javax.imageio;uses\:\="javax.imageio.metadata,javax.imageio.stream,javax.imageio.spi,javax.imageio.event";version\="0.0.0.1_008_JavaSE", javax.lang.model.element;uses\:\="javax.lang.model.type,javax.lang.model";version\="0.0.0.1_008_JavaSE", javax.lang.model.type;uses\:\="javax.lang.model.element,javax.lang.model";version\="0.0.0.1_008_JavaSE", javax.lang.model.util;uses\:\="javax.lang.model,javax.lang.model.element,javax.annotation.processing,javax.lang.model.type";version\="0.0.0.1_008_JavaSE", javax.lang.model;version\="0.0.0.1_008_JavaSE", javax.management.loading;uses\:\="javax.management";version\="0.0.0.1_008_JavaSE", javax.management.modelmbean;uses\:\="javax.management,javax.management.loading";version\="0.0.0.1_008_JavaSE", javax.management.monitor;uses\:\="javax.management";version\="0.0.0.1_008_JavaSE", javax.management.openmbean;uses\:\="javax.management";version\="0.0.0.1_008_JavaSE", javax.management.relation;uses\:\="javax.management";version\="0.0.0.1_008_JavaSE", javax.management.remote.rmi;uses\:\="javax.management.remote,javax.security.auth,javax.management,javax.management.loading,javax.naming,javax.rmi.ssl,org.omg.CORBA,org.omg.CORBA_2_3.portable,org.omg.CORBA.portable,javax.rmi.CORBA,javax.rmi";version\="0.0.0.1_008_JavaSE", javax.management.remote;uses\:\="javax.security.auth,javax.management";version\="0.0.0.1_008_JavaSE", javax.management.timer;uses\:\="javax.management";version\="0.0.0.1_008_JavaSE", javax.management;uses\:\="javax.management.loading,javax.management.openmbean";version\="0.0.0.1_008_JavaSE", javax.naming.directory;uses\:\="javax.naming";version\="0.0.0.1_008_JavaSE", javax.naming.event;uses\:\="javax.naming,javax.naming.directory";version\="0.0.0.1_008_JavaSE", javax.naming.ldap;uses\:\="javax.naming,javax.naming.directory,javax.net.ssl,javax.naming.event";version\="0.0.0.1_008_JavaSE", javax.naming.spi;uses\:\="javax.naming,javax.naming.directory";version\="0.0.0.1_008_JavaSE", javax.naming;uses\:\="javax.naming.spi";version\="0.0.0.1_008_JavaSE", javax.net.ssl;uses\:\="javax.security.cert,javax.security.auth.x500,javax.net";version\="0.0.0.1_008_JavaSE", javax.net;version\="0.0.0.1_008_JavaSE", javax.print.attribute.standard;uses\:\="javax.print.attribute";version\="0.0.0.1_008_JavaSE", javax.print.attribute;version\="0.0.0.1_008_JavaSE", javax.print.event;uses\:\="javax.print,javax.print.attribute";version\="0.0.0.1_008_JavaSE", javax.print;uses\:\="javax.print.attribute,javax.print.event,javax.print.attribute.standard";version\="0.0.0.1_008_JavaSE", javax.rmi.CORBA;uses\:\="org.omg.CORBA,org.omg.CORBA_2_3.portable,org.omg.CORBA.portable,org.omg.SendingContext";version\="0.0.0.1_008_JavaSE", javax.rmi.ssl;uses\:\="javax.net,javax.net.ssl";version\="0.0.0.1_008_JavaSE", javax.rmi;uses\:\="org.omg.CORBA,javax.rmi.CORBA";version\="0.0.0.1_008_JavaSE", javax.script;version\="0.0.0.1_008_JavaSE", javax.security.auth.callback;version\="0.0.0.1_008_JavaSE", javax.security.auth.kerberos;uses\:\="javax.security.auth,javax.crypto";version\="0.0.0.1_008_JavaSE", javax.security.auth.login;uses\:\="javax.security.auth,javax.security.auth.callback";version\="0.0.0.1_008_JavaSE", javax.security.auth.spi;uses\:\="javax.security.auth.callback,javax.security.auth.login,javax.security.auth";version\="0.0.0.1_008_JavaSE", javax.security.auth.x500;uses\:\="javax.security.auth";version\="0.0.0.1_008_JavaSE", javax.security.auth;version\="0.0.0.1_008_JavaSE", javax.security.cert;version\="0.0.0.1_008_JavaSE", javax.security.sasl;uses\:\="javax.security.auth.callback";version\="0.0.0.1_008_JavaSE", javax.sound.midi.spi;uses\:\="javax.sound.midi";version\="0.0.0.1_008_JavaSE", javax.sound.midi;uses\:\="javax.sound.midi.spi";version\="0.0.0.1_008_JavaSE", javax.sound.sampled.spi;uses\:\="javax.sound.sampled";version\="0.0.0.1_008_JavaSE", javax.sound.sampled;uses\:\="javax.sound.sampled.spi";version\="0.0.0.1_008_JavaSE", javax.sql.rowset.serial;uses\:\="javax.sql.rowset";version\="0.0.0.1_008_JavaSE", javax.sql.rowset.spi;uses\:\="javax.sql,javax.naming,javax.sql.rowset";version\="0.0.0.1_008_JavaSE", javax.sql.rowset;uses\:\="javax.sql,javax.sql.rowset.serial,javax.sql.rowset.spi";version\="0.0.0.1_008_JavaSE", javax.sql;uses\:\="javax.transaction.xa";version\="0.0.0.1_008_JavaSE", javax.swing.border;uses\:\="javax.swing";version\="0.0.0.1_008_JavaSE", javax.swing.colorchooser;uses\:\="javax.swing,javax.swing.border,javax.swing.event,javax.swing.text";version\="0.0.0.1_008_JavaSE", javax.swing.event;uses\:\="javax.swing,javax.swing.text,javax.swing.table,javax.swing.tree,javax.swing.undo";version\="0.0.0.1_008_JavaSE", javax.swing.filechooser;uses\:\="javax.swing";version\="0.0.0.1_008_JavaSE", javax.swing.plaf.basic;uses\:\="javax.swing.border,javax.swing,javax.swing.plaf,javax.swing.text,javax.swing.event,javax.swing.colorchooser,javax.accessibility,javax.swing.filechooser,javax.swing.text.html,javax.sound.sampled,javax.swing.table,javax.swing.plaf.synth,javax.swing.tree";version\="0.0.0.1_008_JavaSE", javax.swing.plaf.metal;uses\:\="javax.swing.plaf,javax.swing,javax.swing.border,javax.swing.text,javax.swing.plaf.basic,javax.swing.filechooser,javax.swing.event,javax.swing.tree";version\="0.0.0.1_008_JavaSE", javax.swing.plaf.multi;uses\:\="javax.accessibility,javax.swing,javax.swing.plaf,javax.swing.filechooser,javax.swing.text,javax.swing.tree";version\="0.0.0.1_008_JavaSE", javax.swing.plaf.nimbus;uses\:\="javax.swing,javax.swing.plaf,javax.swing.border,javax.swing.plaf.synth";version\="0.0.0.1_008_JavaSE", javax.swing.plaf.synth;uses\:\="javax.swing,javax.swing.plaf,javax.swing.text,javax.swing.border,javax.swing.plaf.basic,javax.swing.colorchooser,javax.swing.event,javax.xml.parsers,org.xml.sax,org.xml.sax.helpers,javax.swing.table,javax.swing.tree";version\="0.0.0.1_008_JavaSE", javax.swing.plaf;uses\:\="javax.swing,javax.swing.border,javax.accessibility,javax.swing.filechooser,javax.swing.text,javax.swing.tree";version\="0.0.0.1_008_JavaSE", javax.swing.table;uses\:\="javax.swing.event,javax.swing.plaf,javax.swing.border,javax.swing,javax.accessibility";version\="0.0.0.1_008_JavaSE", javax.swing.text.html.parser;uses\:\="javax.swing.text,javax.swing.text.html";version\="0.0.0.1_008_JavaSE", javax.swing.text.html;uses\:\="javax.swing.event,javax.swing.text,javax.accessibility,javax.swing,javax.swing.plaf,javax.swing.border,javax.swing.undo";version\="0.0.0.1_008_JavaSE", javax.swing.text.rtf;uses\:\="javax.swing.text";version\="0.0.0.1_008_JavaSE", javax.swing.text;uses\:\="javax.swing.event,javax.swing.tree,javax.swing.undo,javax.swing,javax.swing.plaf,javax.swing.plaf.basic,javax.print,javax.print.attribute,javax.accessibility,javax.swing.text.html";version\="0.0.0.1_008_JavaSE", javax.swing.tree;uses\:\="javax.swing.event,javax.swing,javax.swing.border,javax.swing.plaf,javax.swing.plaf.basic";version\="0.0.0.1_008_JavaSE", javax.swing.undo;uses\:\="javax.swing,javax.swing.event";version\="0.0.0.1_008_JavaSE", javax.swing;uses\:\="javax.swing.event,javax.accessibility,javax.swing.text,javax.swing.plaf,javax.swing.border,javax.swing.tree,javax.swing.table,javax.swing.colorchooser,javax.swing.plaf.basic,javax.swing.text.html,javax.swing.filechooser,javax.print,javax.print.attribute,javax.swing.plaf.metal";version\="0.0.0.1_008_JavaSE", javax.tools;uses\:\="javax.lang.model.element,javax.annotation.processing,javax.lang.model";version\="0.0.0.1_008_JavaSE", org.ietf.jgss;version\="0.0.0.1_008_JavaSE", org.omg.CORBA.DynAnyPackage;uses\:\="org.omg.CORBA";version\="0.0.0.1_008_JavaSE", org.omg.CORBA.ORBPackage;uses\:\="org.omg.CORBA";version\="0.0.0.1_008_JavaSE", org.omg.CORBA.TypeCodePackage;uses\:\="org.omg.CORBA";version\="0.0.0.1_008_JavaSE", org.omg.CORBA.portable;uses\:\="org.omg.CORBA,org.omg.CORBA_2_3.portable";version\="0.0.0.1_008_JavaSE", org.omg.CORBA;uses\:\="org.omg.CORBA.portable,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA_2_3.portable,org.omg.CORBA.TypeCodePackage";version\="0.0.0.1_008_JavaSE", org.omg.CORBA_2_3.portable;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.CORBA_2_3;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.CosNaming.NamingContextExtPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.CosNaming.NamingContextPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable,org.omg.CosNaming";version\="0.0.0.1_008_JavaSE", org.omg.CosNaming;uses\:\="org.omg.CORBA.portable,org.omg.CORBA,org.omg.PortableServer,org.omg.CosNaming.NamingContextPackage,org.omg.CosNaming.NamingContextExtPackage";version\="0.0.0.1_008_JavaSE", org.omg.Dynamic;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.DynamicAny.DynAnyFactoryPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.DynamicAny.DynAnyPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.DynamicAny;uses\:\="org.omg.CORBA,org.omg.CORBA.portable,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage";version\="0.0.0.1_008_JavaSE", org.omg.IOP.CodecFactoryPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.IOP.CodecPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.IOP;uses\:\="org.omg.CORBA,org.omg.CORBA.portable,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage";version\="0.0.0.1_008_JavaSE", org.omg.Messaging;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.PortableInterceptor.ORBInitInfoPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.PortableInterceptor;uses\:\="org.omg.CORBA,org.omg.CORBA.portable,org.omg.IOP,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.CORBA_2_3.portable,org.omg.Dynamic";version\="0.0.0.1_008_JavaSE", org.omg.PortableServer.CurrentPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.PortableServer.POAManagerPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.PortableServer.POAPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.PortableServer.ServantLocatorPackage;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.PortableServer.portable;uses\:\="org.omg.CORBA,org.omg.PortableServer";version\="0.0.0.1_008_JavaSE", org.omg.PortableServer;uses\:\="org.omg.CORBA,org.omg.CORBA.portable,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer.POAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServer.portable,org.omg.CORBA_2_3,org.omg.PortableServer.ServantLocatorPackage";version\="0.0.0.1_008_JavaSE", org.omg.SendingContext;uses\:\="org.omg.CORBA,org.omg.CORBA.portable";version\="0.0.0.1_008_JavaSE", org.omg.stub.java.rmi;uses\:\="javax.rmi.CORBA";version\="0.0.0.1_008_JavaSE"

sling.installer.dir=${sling.launchpad}/installer

ee-1.8=JavaSE-1.8,JavaSE-1.7,JavaSE-1.6,J2SE-1.5,J2SE-1.4,J2SE-1.3, J2SE-1.2,JRE-1.1,JRE-1.0,OSGi/Minimum-1.2,OSGi/Minimum-1.1, OSGi/Minimum-1.0

org.apache.sling.commons.log.level=INFO

granite.product=Adobe Experience Manager

sling.ignoreSystemProperties=true

sling.bootdelegation.class.org.bouncycastle.jce.provider.BouncyCastleProvider=org.bouncycastle.*

gosh.args=--noshutdown --nointeractive

org.osgi.framework.executionenvironment=${ee-${java.specification.version}}

felix.webconsole.work.context=system

eecap-1.8=osgi.ee; osgi.ee\="OSGi/Minimum"; version\:List<Version>\="1.0,1.1,1.2", osgi.ee; osgi.ee\="JavaSE"; version\:List<Version>\="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8"

sling.run.mode.install.options=author,publish|crx3,crx2|crx3tar,crx3mongo,crx3h2,crx3segment|samplecontent,nosamplecontent

felix.cm.dir=${sling.launchpad}/config

sling.context.default=default

sling.bootdelegation.ibm=com.ibm.xml.*

sling.fileinstall.writeback=false

osgi-core-packages=org.osgi.dto; version\=1.0.0, org.osgi.framework; version\=1.8.0, org.osgi.framework.dto; version\=1.8.0, org.osgi.framework.hooks.bundle; version\=1.1.0, org.osgi.framework.hooks.resolver; version\=1.0.0, org.osgi.framework.hooks.service; version\=1.1.0, org.osgi.framework.hooks.weaving; version\=1.1.0, org.osgi.framework.launch; version\=1.2.0, org.osgi.framework.namespace; version\=1.1.0, org.osgi.framework.startlevel; version\=1.0.0, org.osgi.framework.startlevel.dto; version\=1.0.0, org.osgi.framework.wiring; version\=1.2.0, org.osgi.framework.wiring.dto; version\=1.2.0, org.osgi.resource; version\=1.0.0, org.osgi.resource.dto; version\=1.0.0, org.osgi.service.packageadmin; version\=1.2.0, org.osgi.service.resolver; version\=1.0.0, org.osgi.service.startlevel; version\=1.1.0, org.osgi.service.url; version\=1.0.0

sling.bootdelegation.class.com.rsa.jsafe.provider.JsafeJCE=com.rsa.*

felix.service.urlhandlers=true

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Boost 5
Employee
Nisha_Nivedita
Employee

Likes

15 likes

Total Posts

26 posts

Correct reply

8 solutions
Top badges earned
Boost 5
Boost 3
Boost 10
Boost 1
Applaud 5
View profile

Avatar
Boost 5
Employee
Nisha_Nivedita
Employee

Likes

15 likes

Total Posts

26 posts

Correct reply

8 solutions
Top badges earned
Boost 5
Boost 3
Boost 10
Boost 1
Applaud 5
View profile
Nisha_Nivedita
Employee

14-09-2018

Can you check the similar thread here BouncyCastle might be of help

Answers (2)

Answers (2)

Avatar

Avatar
Springboard
Level 10
Mayank_Gandhi
Level 10

Likes

327 likes

Total Posts

1,150 posts

Correct reply

185 solutions
Top badges earned
Springboard
Establish
Validate 1
Contributor 2
Ignite 5
View profile

Avatar
Springboard
Level 10
Mayank_Gandhi
Level 10

Likes

327 likes

Total Posts

1,150 posts

Correct reply

185 solutions
Top badges earned
Springboard
Establish
Validate 1
Contributor 2
Ignite 5
View profile
Mayank_Gandhi
Level 10

14-09-2018

You need to make sure that you deploy the forms Add-on Package[1] as well while updating the sling.properties file. Depending on the service you would be using you can further refer it's API doc to understand the classes and the methods available.

We have created few samples for document services[1]  which you can deploy on your local, drill the code and understand the invocation flow.  Client classes required to build Maven Projects using AEM Document Services[2] are available in the AEM Forms Client SDK jar.

Hope this helps.

[0]Installing and configuring AEM 6.3 forms

[1]Adobe Experience Manager Help | AEM Forms Samples

[2]Adobe Experience Manager Help | Using Document Services in AEM Forms

Avatar

Avatar
Validate 1
Level 1
tyss20333592
Level 1

Likes

0 likes

Total Posts

3 posts

Correct reply

0 solutions
Top badges earned
Validate 1
View profile

Avatar
Validate 1
Level 1
tyss20333592
Level 1

Likes

0 likes

Total Posts

3 posts

Correct reply

0 solutions
Top badges earned
Validate 1
View profile
tyss20333592
Level 1

14-09-2018

Thank you so much! now I just need to determine all the classes that document services require exactly.